埃拉托色尼筛选法
概念
埃拉托色尼筛选法(the Sieve of Eratosthenes)简称埃氏筛法,是古希腊数学家埃拉托色尼提出的一种筛选法
作用:
产生一个不大于给定整数n的连续质数序列
(质数是大于 1 并且只有 1 和 这个素数本身作为因数(因子) 的正整数。)
步骤
- 初始化一个2~n的连续整数序列,作为候选质数(1只有它自己本身这一个因数。所以1既不是质数,又不是合数)
- 找到当前最小的数2,消去2的倍数,例如4,6,8等
- 再指向下一个最小的数3,消去3的倍数,例如6,9,12等
- 再指向下一个最小的数5,消去5的倍数,例如10,15,20等
.
.
. - 该算法 以这个方式不断的做下去直到序列中已经没有可以消去的元素为止,剩下的就是我们要求的质数
优化
- 根据上面的步骤我们发现有很多数字被重复消去,比如6被消去了两次
- 消去x的倍数时, x 2 x^2 x2不会大于n,p也不会大于 n \sqrt[]{n} n