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.
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 13
#include<cstdio> int a[1000001]; void isp()//记录每个数最大素数下标 { int i,j,cnt=1; for(i=2;i<=1000000;i++) { if(!a[i]) { a[i]=cnt++; for(j=i;j<1000000;j+=i) a[j]=a[i];//每个倍数都等于这个下标 } } } int main() { int i,j,n; isp(); while(~scanf("%d",&n)) { if(n==1) printf("0\n"); else printf("%d\n",a[n]); } return 0; }