大家都知道python的效率是很高的,那就讓它來幫我們處理一些複雜的數學問題吧!
比如說我想要知道101-200之間有多少個素數,看看python是怎麼輸出的?
案例
判斷101-200之間有多少個素數,並輸出所有素數。
先上代碼~
運行效果
題目詳述
程序分析:判斷素數的方法:用一個數分別去除2到sqrt(這個數),如果能被整除,則表明此數不是素數,反之是素數。
第一行:
list=[]
設置一個空的列表變量list
第二行:
from math import sqrt
引入一個sqrt方法,這個是用來求平方根的函數
第三行:
for i in range(101,201):
創建一個從101到200的循環,賦值給i
第四行:
succ = 1
定義一個數字變量succ,來判斷是否為素數
第五行:
k=int(sqrt(i+1))
求i的平方根,並轉換成整數,賦值給k
第六行:
for j in range(2,k+1):
if i%j==0:
succ = 0
break
創建一個從2到k的循環,並且賦值給j,如果i能夠整除j中的任何一個,說明它不是素數,這個時候,將0賦值給succ,並且跳出當前循環,進入上一層i的循環
第七行:
if succ==1:
list.append(i)
如果走完j的循環,都沒有一個數能夠被i整除,那麼succ也不會被賦值為0,依舊是1,這個時候通過判斷succ的值,來確定i是否是素數,如果是的話,加入到列表list裡邊
第八行:
print(list)
print(len(list))
輸出list,以及list的個數,就是101-200中素數的個數
進階:
利用這個原理我們可以輕鬆的去判斷某個數,並根據我們的條件取數是不是很便捷呢結束語
總體來說思路只要有了,以後遇到類似的問題就可以解決了,是不是發現原來Python也沒有想像中的那麼難!
———— e n d ————
覺得文章不錯的,歡迎點在看和轉發