要给出要筛数值的范围n,找出以内的素数。先用2去筛,即把2留下,把2的倍数剔除掉;再用下一个质数,也就是3筛,把3留下,把3的倍数剔除掉;接下去用下一个质数5筛,把5留下,把5的倍数剔除掉;不断重复下去......
x = int(input('请输入一个大于2的自然数:'))
P = []
f = []
for i in range(x + 1):
if i > 2 and i % 2 == 0:
f.append(1)
else:
f.append(0)
i = 3
while i * i <= x:
if f[i] == 0:
j = i * i
while j <= x:
f[j] = 1
j += i + i
i += 2
P.append(2)
for x in range(3, x + 1, 2):
if f[x] == 0:
P.append(x)
print(P)