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

2021-10-14 04:16:32 字數 1233 閱讀 6120

找到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:

ifsum

(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

if s ==0:

print

("完數:%d,因子包括:"

%a,end="")

for j in

range(0

,len

(l1)):

print

("%d"

% l1[j]

, end=

",")

print

()

執行結果

方法二與方法一思路大致相同,不同在於,s-因數,若為0,則代表該數是完數。

找1000以內的完數

完數,是一些特殊的自然數,它所有的真因子 即除了自身以外的因子 的和,恰好等於它本身。所以這裡說明一下,1不是完數,因為1只有自身這乙個因子 第乙個完全數是6,第二個完全數是28,第三個完全數是496,後面的完全數還有8128 33550336等等。所以程式迴圈直接從數字2開始判斷 及執行結果如下 ...

如何找出 1000 以內的 完數

如果乙個數恰好等於它的因子之和,那麼這個數就被稱為 完數 如 6 1 2 3。程式設計找出 1000 以內的所有 完數 外層迴圈 998 次,每次迴圈得到的 i 傳入下個迴圈內,內部迴圈求解出符合 i 整除 k 等於 0 的數,如果能夠整除,那麼說明 k 是 i 的乙個因子,則用 sum 累加,直到...

程式設計找出1000以內的所有完數

關鍵檔案 homework2.cpp 定義控制台應用程式的入口點。程式設計找出1000以內的所有完數 注1 乙個數如果恰好等於它的因子之和,這個數就稱為 完數 例如6 1 2 3.注2 因子即是約數,即可以整除這個數的數 注3 完全數 perfect number 又稱完美數或完備數,是一些特殊的自...