Largest prime factor(素數表的巧用)
阿新 • • 發佈:2019-02-07
Problem Description
Everybody knows any number can be combined by the prime number.
Now, your task is telling me what position of the largest prime factor.
The position of prime 2 is 1, prime 3 is 2, and prime 5 is 3, etc.
Specially, LPF(1) = 0.
Input
Each line will contain one integer n(0 < n < 1000000).
Output
Output the LPF(n).
Sample Input
1
2
3
4
5
Sample Output
0
1
2
1
Everybody knows any number can be combined by the prime number.
Now, your task is telling me what position of the largest prime factor.
The position of prime 2 is 1, prime 3 is 2, and prime 5 is 3, etc.
Specially, LPF(1) = 0.
Input
Each line will contain one integer n(0 < n < 1000000).
Output
Output the LPF(n).
Sample Input
1
2
3
4
5
Sample Output
0
1
2
1
3
#include<stdio.h> #include<iostream> #include<iostream> #include<vector> #define Max 1000006 using namespace std; int vis[Max]; int n; void make_prime() { pair<int,int>p; memset(vis,0,sizeof(vis)); int i,j,num=1; for(i=2;i<Max;i++) { if(!vis[i]) { vis[i]=num; for(j=i+i;j<Max;j+=i) vis[j]=num; num++; } } } int main() { //freopen("b.txt","r",stdin); make_prime(); while(scanf("%d",&n)==1) printf("%d\n",vis[n]); return 0; }