新起点
埃拉托斯特尼筛法
2020-08-03 01:07:29

埃拉托斯特尼筛法(希腊语:κόσκινον Ἐρατοσθένους,英语:sieve of Eratosthenes ),简称埃氏筛,也称素数筛。这是一种简单且历史悠久的筛法,用来找出一定范围内所有的素数。

所使用的原理是从2开始,将每个素数的各个倍数,标记成合数。一个素数的各个倍数,是一个差为此素数本身的等差数列。此为这个筛法和试除法不同的关键之处,后者是以素数来测试每个待测数能否被整除。

埃拉托斯特尼筛法是列出所有小素数最有效的方法之一,其名字来自于古希腊数学家埃拉托斯特尼,并且被描述在另一位古希腊数学家尼科马库斯所著的《算术入门》中。

给出要筛数值的范围n,找出 n {\displaystyle {\sqrt {n}}} > 1 Let be an array of Boolean values, indexed by integers 2 to ,initially all set to true.  for = 2, 3, 4, ..., not exceeding n {\displaystyle {\sqrt {n}}} is true: for = , , , , ..., not exceeding  :  := false Output: all such that is true.

以上算法可以得到小于等于n的所有素数,它的复杂度是O( log log )。

网站公告: