如何通过Python高效学习素数计算方法?
- 内容介绍
- 文章标签
- 相关推荐
本文共计327个文字,预计阅读时间需要2分钟。
计算一定范围内的元素数量,并记录在json文件中。下次计算可以在上次基础上迭代+从3开始计算元素数量的情况,100万内的元素数量计算可在1秒内完成。
pythonimport jsonimport time
start=time.time()
假设有一个函数来计算元素数量def calculate_elements(start, end): # 计算逻辑 pass
从3开始计算elements_count=calculate_elements(3, 1000000)
记录结果到json文件with open('elements_count.json', 'w') as file: json.dump(elements_count, file)
end=time.time()print(fTime taken: {end - start} seconds)
计算一定范围内的素数,并记录在json文件中。下次计算可以在上次的基础上迭代
在从3开始计算素数的情况下,计算100万内的素数能在1秒内完成
import jsonimport 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计算用时:
Montage Jintide(R) C4215R(CentOS服务器,3.2GHz)计算用时:
i5-6200U计算用时:
本文共计327个文字,预计阅读时间需要2分钟。
计算一定范围内的元素数量,并记录在json文件中。下次计算可以在上次基础上迭代+从3开始计算元素数量的情况,100万内的元素数量计算可在1秒内完成。
pythonimport jsonimport time
start=time.time()
假设有一个函数来计算元素数量def calculate_elements(start, end): # 计算逻辑 pass
从3开始计算elements_count=calculate_elements(3, 1000000)
记录结果到json文件with open('elements_count.json', 'w') as file: json.dump(elements_count, file)
end=time.time()print(fTime taken: {end - start} seconds)
计算一定范围内的素数,并记录在json文件中。下次计算可以在上次的基础上迭代
在从3开始计算素数的情况下,计算100万内的素数能在1秒内完成
import jsonimport 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计算用时:
Montage Jintide(R) C4215R(CentOS服务器,3.2GHz)计算用时:
i5-6200U计算用时:

