Python編程題3--找出1000以內的完全數


題目

如果一個數恰好等於它的因子之和,則稱該數為“完全數”,又稱完美數或完備數。例如:
第一個完全數是6,它有約數1、2、3、6,除去它本身6外,其余3個數相加,1+2+3=6。
第二個完全數是28,它有約數1、2、4、7、14、28,除去它本身28外,其余5個數相加,1+2+4+7+14=28。
請按照從小到大的順序輸出 1000 以內的完全數,並用"逗號"分隔輸出結果

實現思路

  • 用第一層 for循環 控制1000以內的數,標記 i ,並通過變量 sum 來控制 i 的所有除 i 外的約數之和
  • 用第二層 for循環 控制 i 以內的數,標記 j
  • 如果 i 能 整除 j ,那么 j 就是 i 的一個約數,如果 sum = i ,則表示 i 是完全數
  • 先把完全數轉為字符串類型,再添加到列表中
  • 對結果進行處理,通過 join() 方法用 "," 拼接

注意:使用 join() 拼接列表時,列表中的元素不能是 int 類型。

代碼實現

def demo():
    result = []
    for i in range(1, 1000):
        sum = 0
        for j in range(1, i):
            if i % j == 0:
                sum += j
        if sum == i:
            result.append(str(i))
    return ",".join(result)

print("1000以內的完全數有:{}".format(demo()))


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM