完數"指的是一個數恰巧等於它的所有因子之和,比如說6,它的因子分別是1,2,3,而6正好等於1+2+3,所以6就是完數!
下邊我們就一起來看看python如何一下找出1000之內的所有"完數",瞬間就完成哦!
題目
一個數如果恰好等於它的因子之和,這個數就稱為"完數"。例如6=1+2+3.編程找出1000以內的所有完數。
代碼
先上代碼~
運行效果
題目詳述
第一行:
for j in range(2, 1001):
創建一個從2到1000的循環,並且將其中的值依次賦值給j
第二行:
s = j
創建一個新的變量s,讓它等於j,方便後邊的計算,可能有的小夥伴會說,不是已經有了一個變量j,這不是多此一舉嗎,主要是j在後邊的循環中還要一直用到,而s則作為一個變量往下進行傳遞
第三行:
for i in range(1, j):
創建一個從1到j-1的循環,並且依次賦值給i
第四行:
if j % i == 0:
如果j能夠整除i,則說明i就是j的一個因子
第五行:
s -= i
用s減去j的因子i,等到i完成所有的遍歷,相當於s減去了j的所有因子
第六行:
if s == 0:
print(j)
如果s等於0,說明s減去j的所有因子值為0,也就是j等於它的所有因子之和,j就是完數,輸出j,遍歷完成,就輸出了所有滿足條件的完數
<code>
進階:
- 利用這個原理我們可以輕鬆的去判斷某個數,並根據我們的條件取數
- 是不是很便捷呢
結束語
總體來說思路只要有了,以後遇到類似的問題就可以解決了,是不是發現原來Python也沒有想象中的那麼難!
———— e n d ————
覺得文章不錯的,歡迎點在看和轉發
閱讀更多 娛樂八卦熱點 的文章