埃拉託色尼篩選法python實現

2021-07-05 16:30:57 字數 508 閱讀 4992

埃拉託色尼篩選法求一定範圍內自然數中的素數:

1、首先取得大於2的所有自然數的數列。

2、在數列中去掉所有大於2並且可以被2整除的數字,得到新數列。

3、在新數列中去掉所有比第一位大但是可以被第一位數整除的數字,得到新數列。

4、反覆執行步驟3即可得到所有的素數。

#生成乙個3開始的奇數數列

def odd_iter():

n = 1

while true:

n = n + 2

yield n

#過濾器

def prime_filter(n):

return lambda x:x % n > 0

#求素數

def prime():

yield 2

i = odd_iter()

while true:

n = next(i)

yield n

i = filter(prime_filter(n), i)

埃拉託色尼篩選法

埃拉託色尼篩選法 the sieve of eratosthenes 簡稱埃氏篩法,是古希臘數學家埃拉託色尼 eratosthenes 提出的一種篩選法。是針對自然數列中的自然數而實施的,用於求一定範圍內的質數。埃氏篩法步驟編輯 1 先把1刪除 現今數學界1既不是質數也不是合數 2 讀取佇列中當前最...

埃拉託色尼篩選法 演算法

埃拉託色尼篩選法 埃拉託色尼選篩法 the sieve of eratosthenes 簡稱埃氏篩法,是古希臘數學家埃拉託色尼 eratosthenes 274b.c.194b.c.提出的一種篩選法。是針對自然數列中的自然數而實施的,用於求一定範圍內的質數,它的容斥原理之完備性條件是p h 1 先把...

埃拉託色尼質數篩選法

以前夏季學期的時候接觸過埃氏篩選法,不過自己當時不太理解。今天看的時候有點感覺,大概用到的是每個合數都能寫成幾個質數相乘的格式,因此如果不能被比該數小的質數整除的話,該書一定也是質數。並且我們已知2是最小的質數,所以從2開始篩選。以下程式可以輸出不超過n的所有質數。當然鑑於陣列的大小是有限的,因此n...