码迷,mamicode.com
首页 > 其他好文 > 详细

2136 Largest prime factor(打表)

时间:2015-08-05 20:03:57      阅读:128      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!