import math as m #第三种算法需求
import time as t
t0=t.time()
s=0
for i in range(2,10000):
n = 0
for j in range(1,i+1): #除以全部数算法
if i%j==0:
n+=1
continue
if n==2: #该数只被自身和1整除,则该数为素数
s+=1
print("算法1一共有素数:{}个".format(s))
t1=t.time()
s=0
for i in range(2,10000):
n = 0
for j in range(2,(i//2)+1): #除以 2到向上取整一半数 算法
if i%j==0:
n+=1
continue
if n==0: #不能被算法中任意数除,则该数为素数
s+=1
print("算法2一共有素数:{}个".format(s))
t2=t.time()
s=0
for i in range(2,10000):
n = 0
for j in range(2,int(m.sqrt(i)+1)): #除以 2到向上取整该数算术平方根 算法
if i%j==0:
n+=1
continue
if n==0: #不能被算法中任意数除,则该数为素数
s+=1
print("算法3一共有素数:{}个".format(s))
t3=t.time()
print("总耗时:{}".format(t3-t0))
print("算法1耗时:{}".format(t1-t0))
print("算法2耗时:{}".format(t2-t1))
print("算法3耗时:{}".format(t3-t2))
测试3种计算素数的基础算法各自所用时间
最新推荐文章于 2020-11-03 15:01:53 发布