「每日一練」巧用python找出1000以內的所有完數

完數"指的是一個數恰巧等於它的所有因子之和,比如說6,它的因子分別是1,2,3,而6正好等於1+2+3,所以6就是完數!

下邊我們就一起來看看python如何一下找出1000之內的所有"完數",瞬間就完成哦!

題目

一個數如果恰好等於它的因子之和,這個數就稱為"完數"。例如6=1+2+3.編程找出1000以內的所有完數。

代碼

先上代碼~

「每日一練」巧用python找出1000以內的所有完數

運行效果

「每日一練」巧用python找出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 ————

「每日一練」巧用python找出1000以內的所有完數

覺得文章不錯的,歡迎點在看和轉發


分享到:


相關文章: