您的位置:首页 > 其它

【HDU2136】 Largest prime factor

2017-08-09 12:54 225 查看
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. 

InputEach line will contain one integer n(0 < n < 1000000). 

OutputOutput the LPF(n). 

Sample Input
1
2
3
4
5


Sample Output
0
1
2
1
3


/**
素数筛法,每遍历一个外层点时
将它的所有倍数全部赋值为num(当前质因子的序号)
从小到大逐个遍历
4000
即为最大质因子的序号
*/
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<cstdio>
#include<queue>
#include<vector>
using namespace std;
const int Max = 1e6 + 5;
int n;
int a[Max];
int main()
{
memset(a, 0, sizeof(a));
int num = 1;                        //质因子序号
for(int i = 2; i <= Max; i++)
{
if(!a[i])
{
for(int j = i; j <= Max; j += i)            //i的所有倍数都被赋值为同一个序号
{
a[j] = num;
}
num++;
}
}
while(scanf("%d", &n) != EOF)
{
printf("%d\n", a
);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: