Python程式設計題3--找出1000以內的完全數
阿新 • • 發佈:2020-08-15
題目
如果一個數恰好等於它的因子之和,則稱該數為“完全數”,又稱完美數或完備數。例如:
第一個完全數是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()))