輸出n以內的所有素數(質數)

2021-10-04 06:17:03 字數 835 閱讀 4886

素數(質數):除能被自己和1整除,不能被其他數整除的數叫素數,1和0既非素數也非合數。

***素數一定是不能整除2和3,但不能整除2和3的不一定是素數如35和49

def _odd_iter(n):

liste=[i for i in range(2,n+1)]

k=0while k思路分析:

1、先生成3開頭的奇數,因為偶數均不是素數

2、定義乙個函式不能整除

3、通過filter過濾函式完成輸出n以內的所有素數

def generateodd(m):

k=1while k<=m:

k=k+2

yield k

def divisible(t):

return lambda a:a%t>0

def prime(n):

yield 2

it=generateodd(n)

while true:

try:

k = next(it)

yield k

it = filter(divisible(k),it)

except stopiteration as e:

print('generator return value:', e.value)

break

tmp=80

print(tmp,'以內的所有素數:',list(prime(tmp)))

80 以內的所有素數: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79]

計算n以內的所有素數

尋找素數我們最常用的方法是暴力求解法,就是沒對於每個數n,從2找到n的開方,判斷每個數是不是素數,時間複雜度度為o nlog2n 時間複雜度高,是肯定的,因為太 暴力 所以,我想換個思路,其實求素數的過程,就是去除合數的過程,如果對於乙個雜湊,去除了合數,那麼留下的就是素數了,時間複雜度接近o n ...

求N以內的所有素數

如下 include stdafx.h include conio.h include math.h include malloc.h typedef long long prime typedef struct pn 構造素數節點 struct pn next pn static pn prime...

輸出200以內所有素數(python)

質數 prime number 又稱 素數,有無限個。質數定義為在大於1的自然數中,除了1和它本身以外不再有其他 因數。輸出200以內所有素數 python num 0 for i in range 2,200 k true for j in range 2,i for j in range 2,i...