程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

python實現求解一億以下的素數

編輯:Python

一億以下素數有多少?

心血來潮,寫了個求解一億以下素數的代碼,來測試筆記本的運算速度。
最後花費兩個多小時。
裡面那個進度不是均勻的呀,越到後面,一次循環花費的時間越多。

代碼如下:

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()

這是最後的結果:

這是計算出來的所有素數:


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved