一亿以下素数有多少?
心血来潮,写了个求解一亿以下素数的代码,来测试笔记本的运算速度。
最后花费两个多小时。
里面那个进度不是均匀的呀,越到后面,一次循环花费的时间越多。
代码如下:
import math
import time
f = open("一亿以下质数.txt", "w")
time_start = time.time() # 记录开始时间
num = [];
i = 2
M=100000000
h = 0
for i in range(2, M):
print("进度为:{:.2%}".format(i/ M))
j = 2
for j in range(2, math.ceil(math.sqrt(i))):
if (i % j == 0):
break
else:
num.append(i)
h=h+1
print(h)
if h%10==0:
f.write(str(i)+"\n")
else:
f.write(str(i)+"\t")
time_end = time.time() # 记录结束时间
time_sum = time_end - time_start # 计算的时间差为程序的执行时间,单位为秒/s
# 打印输出
print("\n")
print("本次计算小于%d的所有质数"%M)
print("共花费时间:%.2f s"%time_sum)
print("经过计算,一共有%d个质数"%len(num))
# print("分别是:")
# print(num)
f.close()
这是最后的结果:
这是计算出来的所有素数: