Eddy's research I(hdu1164分解因数)
2013-05-15 13:13
260 查看
题意:9412 = 2*2*13*18,11 = 11 现在给一个数输出他的几个素数相乘的形式 (n < 65536)
思路:先打一个65535的素数表,让n一直除某个素数,知道不能整除,换下一个,一直到第n个素数
思路:先打一个65535的素数表,让n一直除某个素数,知道不能整除,换下一个,一直到第n个素数
#include<iostream> #include<cstdio> #include<cstring> #include<cmath> using namespace std; int prime[70000]; int pr[70000]; int num[100]; int prim(int n)//筛法素数打表 { int i,j;prime[1] = 1; for(i = 2; i <= sqrt(n); i++) { for(j = 3; j < n; j++) { if(j % i == 0 && i != j)//注意不能自己除以自己,素数的因子除了1就剩本身了 { prime[j] = 1; } } } int k = 0; for(i = 1; i <= 65535; i++) { if(!prime[i]) pr[k++] = i; } return k; } int main() { int n,k; int len = prim(65535); while(scanf("%d",&n) != EOF) { if(!prime ) printf("%d\n",n); else { k = 0; for(int i = 0; i < n; i++) { while(n % pr[i] == 0)//判断能否整除第i个素数 { num[k++] = pr[i]; n = n / pr[i]; } } printf("%d",num[0]); for(int i = 1; i < k; i++) { printf("*%d",num[i]); } printf("\n"); } } return 0; }
相关文章推荐
- hdoj-1164-Eddy's research I【分解质因数】
- HDU 1164 Eddy's research I(将数分解成素数之积)
- hdoj-1164-Eddy's research I【分解质因数】
- HDU1164 Eddy's research I(解法二)
- Hdu1164(Eddy's research I 因子分解)
- hdu1164 Eddy's research I(数论:唯一分解式)
- [快速因数分解]Pollard's Rho 算法
- 【快速因数分解】Pollard's Rho 算法
- HDU 1164 Eddy's research I (数学)
- Eddy's research I(素数打表)
- HDU1164_Eddy's research I【Miller Rabin素数测试】【Pollar Rho整数分解】
- HDU 1164 Eddy's research I(埃拉托斯尼斯筛法求素数)
- HDU 1164 Eddy's research I(素数连乘)
- HDU1164_Eddy's research I【Miller Rabin素数测试】【Pollar Rho整数分解】
- HDOJ 1164 Eddy's research I(拆分成素数因子)
- HDU1164:Eddy's research I
- HDU 1162 Eddy's picture(最小生成树-Prim)
- Pollard's Rho Algorithm——求正整数的质因数
- hdu 1164 Eddy's research I
- Eddy's picture 杭电oj 1162