計算1-10000之間的質數
問題:求解1-10000之間的質數
1.質數與合數:質數是只有1和它本身兩個因數;合數是除了1和它本身之外還有別的因數,即因數個數大于等于3個的數,
2.本次的求解程序類似套娃,利用兩次回圈遍歷,我看了網上的好多文章,都是效率較低的求解程序,今天那年那棵樹為大家帶來了優化后的求解程序,
3.大家仔細閱讀的話,會發現那棵樹用到了一個break來打破回圈,沒錯的,這就是代碼優化的關鍵,當他的因子個數大于等于3個的時候就可以判斷他一定不是一個質數,立即跳出回圈,可以不必做后面的無用功,(關注那年那棵樹給你帶來別樣的驚喜!!!)
代碼演示:
# 創建一個串列用存放放質數
list1 = []
# 進行for遍歷回圈(1, 10000)
for i in range(1, 10001):
count = 0 # 初始化 一個數值為0, 用來統計可以整除的個數, 大于2就不是質數, 反之則為質數
for m in range(1, i+1): # 從1到它本身進行二次遍歷除法
if (i % m) == 0:
count += 1
if count == 3:
break
if count == 2:
list1.append(i) # 陣列添加
print(list1)
print('1-10000之間的質數個數為:', len(list1))
圖片演示

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/272919.html
標籤:其他
下一篇:Delphi執行緒內部
