Python程式設計PTA題解 找完數

2021-10-04 05:20:59 字數 1175 閱讀 6600

description:所謂完數就是該數恰好等於除自身外的因子之和。例如:6=1+2+3,其中1、2、3為6的因子。本題要求編寫程式,找出任意兩正整數m和n之間的所有完數。

input:輸入僅一行,輸入2個正整數m和n(110000以內的完數如下:

1 = 1

6 = 1 + 2 + 3

28 = 1 + 2 + 4 + 7 + 14

496 = 1 + 2 + 4 + 8 + 16 + 31 + 62 + 124 + 248

8128 = 1 + 2 + 4 + 8 + 16 + 32 + 64 + 127 + 254 + 508 + 1016 + 2032 + 4064

我們可以發現對於它們的因數除了「1」這個因數外,都是前後對應的

比如 :

2 * 4064 = 8128

4 * 2032 = 8128

8 * 1016 = 8128

16 * 508 = 8128

......

所以只要找到前面的因數,再拿其整除它本身就可以了

import math

m, n =

map(

int,

input()

.split())

t =true

#判斷是否有完數

for k in

range

(m, n +1)

: num =[1

]for a in

range(2

,int

(math.sqrt(k))+

1):if k % a ==0:

if a * a != k:

#這裡是防止前面找到的因數被重複加入列表

#通過整除找到後面對應的乙個因數

ifsum

(num)

== k:

t =false

num.sort(

)print

(k,"="

, end=

' ')

print

(*num, sep=

" + "

)if t:

print

("none"

)

Python程式設計PTA題解 刪除字元

description 輸入乙個字串 str,再輸入要刪除字元 c,大小寫不區分,將字串 str 現的所有字元 c 刪除。input 在第一行中輸入一行字元 在第二行輸入待刪除的字元 output 輸出僅一行,輸出刪除後的字串 sample input beee sample output resu...

Python程式設計PTA題解 詞頻統計

description 編寫程式,對一段英文文字,統計其中所有不同單詞的個數,以及詞頻最大的前10 的單詞。所謂 單詞 是指由不超過80個單詞字元組成的連續字串,但長度超過15的單詞將只擷取保留前15個單詞字元。而合法的 單詞字元 為大小寫字母 數字和下劃線,其它字元均認為是單詞分隔符。input ...

PTA 找完數 20分

所謂完數就是該數恰好等於除自身外的因子之和。例如 6 1 2 3,其中1 2 3為6的因子。本題要求編寫程式,找出任意兩正整數m和n之間的所有完數。輸入在一行中給出2個正整數m和n 1逐行輸出給定範圍內每個完數的因子累加形式的分解式,每個完數佔一行,格式為 完數 因子1 因子2 因子k 其中完數和因...