用筛法求n之内的素数
import math
import time
n = 1000000
#n = int(input('input: '))
nums = [0, 0, 1] + [1, 0]*int((n-2)/2) + [1]*(n%2)
t1 = time.time()
for i in range(3, int(math.sqrt(n))+1):
if nums[i] != 0:
for j in range(2*i, n+1, i):
nums[j] = 0
for index, item in enumerate(nums):
if item:
print(index)
t2 = time.time()
print(t2-t1)
计算1000000以内素数大概0.3秒左右,感兴趣可以尝试一下
菜鸟工具