孪生素数(python)
– – 所有的素数都在6的倍数的前一个或者后一个
(100000以内所有素数)
# 方法二--利用他们之间的差值规律来进行赋值
import datetime # 导入时间模块
x = 100000
count = 2
time = datetime.datetime.now() # 利用时间来检验算法的优劣
prime = [3]
n = 5
stlp = 2
while n < x:
flay = False
pow = int(n ** 0.5)
for i in prime:
if i > pow:
flay = True
break
if n % i == 0:
break
if flay:
count += 1
prime.append(n)
n += stlp
stlp = 4 if stlp == 2 else 2
time2 = (datetime.datetime.now() - time).total_seconds() # 利用total_seconds()来提取时间差
print(count, time2)
结果:
9592 0.104327
在这里由于数据太多,素数没有打印。。。