1 from time import time 2 from json import load 3 t1 = time() 4 with open("筛选法求10的0次方到4次方范围内素数共1229个.json", "r")as fjr: 5 ak = load(fjr) 6 N = int(1e8) 7 td = list(range(N + 1)) 8 for i in ak: 9 for j in range(i, int(N / i) + 1): 10 td[i * j] = 0 11 td = set(td) 12 td = list(td) 13 td.remove(0) 14 td.remove(1) 15 16 t2 = time() 17 tt = t2 - t1 18 ff = "\n筛选法phthon求10的0次方到8次方范围内素数共{}个耗时{}秒".format(len(td), tt) 19 print(ff)
我一直在思考用主动乘法的删选法去寻找大范围内的素数。前不久看到一个大牛的脚本,受启发后写出如上python,运行后:45秒得到1亿内全部素数。