hdu 2136(最大素数因子)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2136

求某个数最大素数因子的位置。

View Code
 1 #include<iostream>

 2 const int MAXN=1000004;

 3 using namespace std;

 4 bool prime[MAXN];

 5 int res[MAXN];//res[j]存放j的最大素数因子的位置,即答案

 6 

 7 int main(){

 8     int count=1;

 9     for(int i=2;i<MAXN;i++){

10         if(!prime[i]){

11             res[i]=count;//保存素数i的位置

12             for(int j=i;j<MAXN;j+=i){

13                 prime[j]=true;

14                 res[j]=count;

15             }

16             count++;

17         }

18     }

19     int n;

20     while(~scanf("%d",&n)){

21         printf("%d\n",res[n]);

22     }

23     return 0;

24 }

 

你可能感兴趣的:(HDU)