エラトステネスのふるい
エラトステネスのふるい
・任意のn以下の素数のリストをO(nloglogn)(らしい)で得る。
def prime(x): x = int(x) if x < 2: return [] P = [True]*(x+1) P[0],P[1] = False,False res = [] for i in range(x+1): if P[i] == False: continue else: res.append(i) q = i*2 while q < x+1: P[q] = False q += i return res
入力
#input p = prime(100) print(p)
出力
#output [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]