求1000以內的完數(python)實現

2021-10-10 03:28:47 字數 1016 閱讀 5748

求完數,首先確定什麼是完數:乙個數等於其所有因子之和的數就叫完數。

'''

自頂向下設計方法:

特點:先整體後區域性,先抽象後具體

編寫演算法求1000以內的完數,並按下面的格式輸出其因子:28 it`s factors are 1,2,4,7,14。

'''def

main()

: n =

int(

input

("請輸入n的值:"))

for i in

range(1

,n+1):

#從1到1000開始,逐個遍歷,找出其中的完數

result =

# 使用列表來存放乙個完數的所有因子

for j in

range(1

,int

(i/2)+

1):#因為該數因子不可能超過i/2,故找出該數i的所有因子,不包括該數自己本身

if i % j ==0:

if i % j ==0:

#將i的因子新增到列表中

if i ==

sum(result)

:#如果i等於列表中所有因子的和,則i就是完數

print

("完數:"

,i,"it`s factors are"

,result)

if __name__ ==

'__main__'

: main(

)

執行結果:

請輸入n的值:1000

完數: 6 it`s factors are [1,

2,3]

完數: 28 it`s factors are [1,

2,4,

7,14]

完數: 496 it`s factors are [1,

2,4,

8,16,

31,62,

124,

248]

演算法訓練 求1000以內的完數

刷題筆記 題目 問題描述 如果乙個數恰好等於它的所有因子 包括1但不包括自身 之和,則稱之為 完數 例如6的因子是1,2,3,且6 1 2 3,因此6是完數。編寫程式找出1000之內的所有完數。注意1不是完數。輸入格式 無輸出格式 如有多個完數,則分行輸出,每行輸出乙個完數。注意,不要輸出其他任何多...

找1000以內的完數

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

如何找出 1000 以內的 完數

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