首页 UVa 10392 Factoring Large Numbers-素因子分解

UVa 10392 Factoring Large Numbers-素因子分解

举报
开通vip

UVa 10392 Factoring Large Numbers-素因子分解UVa 10392 Factoring Large Numbers-素因子分解 UVa 10392 Factoring Large Numbers:素因子分解 10392 - Factoring Large Numbers Time limit: 3.000 seconds ;Itemid=8&category=100&page=show_problem&problem=1333 One of the central ideas behind much cryptography is that facto...

UVa 10392 Factoring Large Numbers-素因子分解
UVa 10392 Factoring Large Numbers-素因子分解 UVa 10392 Factoring Large Numbers:素因子分解 10392 - Factoring Large Numbers Time limit: 3.000 seconds ;Itemid=8&category=100&page=show_problem&problem=1333 One of the central ideas behind much cryptography is that factoring large numbers is computationally intensive. In this context one might use a 100 digit number that was a product of two 50 digit prime numbers. Even with the fastest projected computers this factorization will take hundreds of years. You don't have those computers available, but if you are clever you can still factor fairly large numbers. Input The input will be a sequence of integer values, one per line, terminated by a negative number. The numbers will fit in gcc's long long int datatype. You may assume that there will be at most one factor more than 1000000. Output Each positive number from the input must be factored and all factors (other than 1) printed out. The factors must be printed in ascending order with 4 leading spaces preceding a left justified number, and followed by a single blank line. Sample Input 90 1234567891 18991325453139 12745267386521023 -1 Sample Output 2 3 3 5 1234567891 3 3 13 179 271 1381 2423 30971 411522630413 water. 完整代码: /*0.016s*/ #include #include #include typedef long long LL; const int maxn = 100000; LL prime[maxn], c; bool vis[maxn]; inline void make_prime() { LL i, j; for (i = 2; i < maxn; i++) if (!vis[i]) { prime[c++] = i; for (j = i * i; j < maxn; j += i) vis[j] = true; } } int main() { LL n, i, x; make_prime(); while (scanf("%lld", &n), ~n) { x = sqrt(n); for (i = 0; prime[i] <= x && i < c;) { if (n % prime[i] == 0) { printf(" %lld\n", prime[i]); n /= prime[i]; if (n == 1) break; } else ++i; } if (n != 1) printf(" %lld\n", n);///there will be at most one factor more than 1000000 putchar('\n'); } return 0; } 查看本栏目更多精彩内容:://www.bianceng.cn/Programming/sjjg/
本文档为【UVa 10392 Factoring Large Numbers-素因子分解】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_083599
暂无简介~
格式:doc
大小:15KB
软件:Word
页数:0
分类:生活休闲
上传时间:2017-12-02
浏览量:11