找到1000以內的完數 利用Python實現
阿新 • • 發佈:2021-01-09
找到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,則代表該數是完數。
今天的分享就到這,如果你有什麼新想法,請在評論區告訴我。