素数
Halo_7777777
这个作者很懒,什么都没留下…
展开
-
【算法】Eratosthenes筛选法与欧拉筛选法求素数
Eratosthenes筛法 1.原理 一个合数可以分成几个素数的和,如果把素数(最初只知道2)的倍数全都去掉,剩下的就都是素数了 2.思路分析 去除0,1(既不是素数又不是合数) 找到队列中最小的素数,删除其倍数 3.代码实现(只给出了函数,未写主函数) 用一数组存这一列数,数组的标号即为数字,值1表示为素数,值0表示不为素数 void sieveofe(int p[], int n) ...原创 2018-12-29 12:18:17 · 812 阅读 · 1 评论 -
【算法】试除法求素数
判定一个数是否为素数(只能被1和本身整除)通常用小于这个数的所有数去试除他,看是否能被整除,显然不够简便。 优化: 除了2以外,其他偶数全都不为素数(能被2整除),所以除了2以外只需要判断奇数是否为素数 若要判断一个数n,不需要试除到n-1或者n/2,只需要到sqrt(n), 因为一个数若有因数,一个大于sqrt(n)一个小于sqrt(n)或者两者都为sqrt(n) 一个数的独特因数一...原创 2018-12-28 22:39:22 · 1829 阅读 · 2 评论