1. 程式人生 > >python二級練習(10)

python二級練習(10)

10. 一個數如果恰好等於它的因子之和,這個數就稱為“完數”。例如,6的因子為1、2、3,而6=1+2+3,因此6是完數。程式設計,找出1000之內的所有完數,並輸出該完數及對應的因子。(列舉法)

#python 3.6
#蔡軍生 
#http://blog.csdn.net/caimouse/article/details/51749579
#

maxnum = int(input('請輸入一個最大的整數:'))
for i in range(2, maxnum + 1):
    sum = i
    numlist = []
    for j in range(1, i):
        if i % j == 0:
            sum -= j
            numlist.append(j)
    if sum == 0:
        print(f'完數: {i}')
        print('因子包括:', numlist)
        
結果輸出如下:

請輸入一個最大的整數:1000
完數: 6
因子包括: [1, 2, 3]
完數: 28
因子包括: [1, 2, 4, 7, 14]
完數: 496
因子包括: [1, 2, 4, 8, 16, 31, 62, 124, 248]