1. 程式人生 > 其它 >找到1000以內的完數 利用Python實現

找到1000以內的完數 利用Python實現

技術標籤:Python-testspython列表演算法

找到1000以內的完數 利用Python實現

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

方法一:

ls = []
for i in range(1,1001):
    for j in range(1,i):
        if i % j == 0:
            ls.append(j)
    if sum(ls) == i:
        print("{}是完數,其因子包括{}"
.format(i,ls)) ls.clear()

執行結果
在這裡插入圖片描述
方法一:實測8行程式碼,第一次遍歷1-1000,j 遍歷1-i,用於作為j 的除數,如果i / j的餘數為零,則表示它是i 的因數,新增到列表中,然後利用Python中方便的sum函式進行判斷,輕鬆解決這個問題。

方法二:

m=1000
for a in range(2,m+1):
    s = a
    L1=[]
    for i in range(1, a):
        if a%i == 0:
            s -= i
            L1.append(i) 
    if s == 0:
        print
("完數:%d,因子包括:"%a,end="") for j in range(0, len(L1)): print("%d" % L1[j], end=",") print()

執行結果
在這裡插入圖片描述
方法二與方法一思路大致相同,不同在於,s-因數,若為0,則代表該數是完數。

今天的分享就到這,如果你有什麼新想法,請在評論區告訴我。