首页 > 其他 > 详细

2136 Largest prime factor(打表)

时间:2015-08-05 20:02:35      阅读:420      评论:0      收藏:0      [点我收藏+]
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
1 2 3 4 5
 

 

Sample Output
0 1 2 1 3
 

 

Author
Wiskey
 

 

Source
 
 
题意:就是求最大素因子的在素数表中的位置.

 1 #include <stdio.h>
 2 #include <math.h>
 3 #include <queue>
 4 #include <vector>
 5 #include <stack>
 6 #include <map>
 7 #include <string>
 8 #include <cstring>
 9 #include <algorithm>
10 #include <iostream>
11 using namespace std;
12 #define N 1000000
13 int a[N];
14 void pd(){
15     int n=0,i,t,j;
16     memset(a,0,sizeof(a));
17     for(i=2;i<=N;i++)//对当前数的每个数的倍数进行赋值素数编号 可以覆盖哦 因为要覆盖为最大因子
18     {
19         if(a[i]==0)
20         {
21             n++;//素数i的位置
22             for(j=i;j<=N;j+=i)//构造出j的暂时最大素数因子的位置
23                 a[j]=n;
24         }
25     }
26 }
27 int main()
28 {
29     int i;
30     pd();
31     while(~scanf("%d",&i))
32     {
33         printf("%d\n",a[i]);
34     }
35     return 0;
36 }

 

2136 Largest prime factor(打表)

原文:http://www.cnblogs.com/wangmengmeng/p/4705341.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!