Python计算素数学习记录

Posted MoneyDuo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python计算素数学习记录相关的知识,希望对你有一定的参考价值。

计算一定范围内的素数,并记录在json文件中。下次计算可以在上次的基础上迭代

在从3开始计算素数的情况下,计算100万内的素数能在1秒内完成

import json
import time
start = time.time()
limit = 1e6
try:
with open (prime.json,r) as file:
list = json.load(file)
num = list[-1]
except FileNotFoundError:
list = [3]
num = 3

def check(num):
for i in list:
if num%i == 0:
break
elif i*i > num: #这里千万不要写成i**2,计算速度会慢2倍多
list.append(num)
#print(num)
break

while num < limit:
num = num + 2
check(num)

# with open (prime.json, w) as file:
# json.dump(list,file,indent=4)

print(list[-1])
end = time.time()
print(f本次计算用时:end-start)

i5-10400计算用时:

Python计算素数学习记录_质数

Montage Jintide(R) C4215R(CentOS服务器,3.2GHz)计算用时:

Python计算素数学习记录_json_02

i5-6200U计算用时:

Python计算素数学习记录_算法_03

以上是关于Python计算素数学习记录的主要内容,如果未能解决你的问题,请参考以下文章

Python实现返回指定范围内的所有素数

当我想使用 calcHist 生成图片特定范围内的像素数时,断言失败

使用BitArray判断素数

Python NumPy 学习记录随机

ACM_回文素数

python基本语法2.8--找出100以内的素数