# Largest prime factor

Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 15589    Accepted Submission(s): 5406

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
12345

Sample Output
01213

Author
Wiskey

Source

HDU 2007-11 Programming Contest_WarmUp

AC代码：

#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <algorithm>
#include <iostream>
using namespace std;
const int MAXN = 1e6+10;
int LPF[MAXN];
//素数筛选
void init(){
memset(LPF,0,sizeof(LPF));
int cnt=1;
for(int i=2;i<MAXN;i++){
if(!LPF[i]){
for(int j=i;j<MAXN;j=j+i){
LPF[j]=cnt;//对于不是素数的数，每次更新他的最大的质因子。
}
cnt++;
}
}
}

int main(){
init();
int n;
while(~scanf("%d",&n)){
printf("%d\n",LPF[n]);
}
return 0;
}


• 广告
• 抄袭
• 版权
• 政治
• 色情
• 无意义
• 其他

120