Largest prime factor
2016-10-27 21:53
239 查看
Largest prime factor |
Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) |
Total Submission(s): 6261 Accepted Submission(s): 1921 |
[align=left]Problem Description[/align] 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. |
[align=left]Input[/align] Each line will contain one integer n(0 < n < 1000000). |
[align=left]Output[/align] Output the LPF(n). |
[align=left]Sample Input[/align]1 2 3 4 5 |
[align=left]Sample Output[/align]0 1 2 1 3 |
[align=left]Author[/align] Wiskey |
[align=left]Source[/align] HDU 2007-11 Programming Contest_WarmUp |
[align=left]Recommend[/align] 威士忌 看到一很好的方法 求素数的问题,但数据范围是0 < n < 1000000这么大,很明显平时我们穷举数字,再一个个去判断是否是素数,肯定超时,这就要用到效率非常高的求素数的算法了 竞赛中一般用素数筛选法来处理此类问题,关于素数筛选法生成素数表,这个网上资料也很多,可以自己搜索学习,简单的说是用了一个思想:(素数的倍数一定是个合数)。建立一个全1的数组(下标2~N),先将下标是2的倍数的全置0,再将下标是3的倍数全置0,……,以此类推, 最后剩下的,仍是1的那些下标,就肯定是素数了。 这样做远远比过去穷举数字快是不是??你们可以体会下。 AC代码: #include<stdio.h> #include<string.h> #include<iostream> #include<algorithm> using namespace std; const int MAX=1000000; int prime[MAX]={0}; int mark[MAX]={0}; void init() { for(int i=2,n=1;i<MAX;i++) //枚举 { if(prime[i]==0) //0标志位代表是素数 { mark[i]=n++; //记录这个素数对应的序号 for(int j=i;j<MAX;j=j+i) //素数的倍数,肯定不是素数 { prime[j]=i; //去掉标志位,记录最大质因数 } } } } int main() { int n; init(); while(~scanf("%d",&n)) { printf("%d\n",mark[prime ]); //prime中存放这个数的最大质因数 } return 0; } |
相关文章推荐
- hdu 2136 Largest prime factor
- HDU 2136 Largest prime factor (最大素因子序号,cin超时呀!!!)
- HDU 2136 largest prime factor
- HDU 2136 Largest prime factor
- HDU 2136 Largest prime factor(素数筛法)
- Euler project3: the largest prime factor
- Largest prime factor(筛选法)
- Largest prime factor
- HDOJ 题目Largest prime factor(水题)
- 【沙茶了+筛选保存最大质因数】【HDU2136】Largest prime factor
- HDU2136_Largest prime factor【水题】【筛法求素数】
- (hdu step 2.1.3)Largest prime factor(求一个数的最大质因子的位置)
- Largest prime factor
- Largest prime factor
- hdu 2136 Largest prime factor
- HDU2136:Largest prime factor
- HDU 2136 Largest prime factor(筛选法)
- 【沙茶了+筛选保存最大质因数】【HDU2136】Largest prime factor
- Largest prime factor(素数筛选法)
- Largest prime factor