您的位置:首页 > 其它

Largest prime factor

2017-08-11 09:24 148 查看
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
3

 

用常规方法会超时,所以这里用筛选法很好

#include <stdio.h>
#define  MAX 1000000
int dawn[MAX]={0};
int ty[MAX]={0};
int main()
{
int n;
for(int i=2,n=1;i<MAX;i++){
if(dawn[i]==0){
ty[i]=n++;
for(int j=i;j<MAX;j=j+i){ //把所有倍数给排除掉
dawn[j]=i;
}
}
}
while(~scanf("%d",&n)){
printf("%d\n",ty[dawn[n]]);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: