用切片操作實現的Python篩法

lt發表於2019-12-28
li=[] 
def Sieve(n):
 h  = [True] * n
 h[:2] = [False, False]
 for i in range(2, int(n ** 0.5) + 1):
    if h[i]:
        h[i*i::i] = [False] * len(h[i*i::i]) #相當於步長為i的迴圈
 for i, e in enumerate(h):
    if e:
        li.append(i)

相關文章