c184. 盈虧互補
標籤 :
通過比率 : 1251人/1487人 ( 84% ) [非即時]
評分方式:
Tolerant

最近更新 : 2022-12-13 14:51

內容

畢達哥拉斯及其門徒稱 6 及 28 為完全數 (或稱為完美數),因為它們都等於其真因數的和:

6 的真因數:1、2、3 其和為 1+2+3 = 6

28 的真因數:1、2、4、7、14 其和為 1+2+4+7+14 = 28

所以,一個正整數的真因數和等於它本身時,我們就稱它為完全數!

但是「人有悲歡離合,月有陰晴圓缺,此事古難全」,完全數也一樣。2018 年 12 月所發現的第 51 個完全數已經是 49,724,095 位數了。因此絕大多數的整數不是「盈數」就是「虧數」。

盈數:真因數和大於整數本身。例如 12 的真因數和 1+2+3+4+6 = 16,大於 12 本身。

虧數:真因數和小於整數本身。例如 15 的真因數和 1+3+5 = 9,小於 15 本身。

雖然大多數的整數都不是完全數,但是如果我們可以找到一對盈數與虧數,彼此互為對方的真因數和,那麼它們就可以透過互補而成為完美。我們稱這樣的一對盈數與虧數為「友好數」。

例如:
220 的真因數和 1+2+4+5+10+11+20+22+44+55+110 = 284
284 的真因數和 1+2+4+71+142 = 220

畢達哥拉斯曾說:「朋友是你靈魂的倩影,要像 220 與 284 一樣親密。」

輸入說明

輸入只有一行,含有一個數字 𝑛 (2 ≤ 𝑛 ≤ 231-1)。

輸出說明

如果 𝑛 是完全數,請輸出「{n} is perfect.」。否則請找出是否存在某個數 𝑚,使得 𝑛 和 𝑚 是友好數。如果有,請輸出「{n} and {m} are friends.」,否則輸出「{n} has no friends.」。請參考範例輸出,列出計算過程。由於 1 沒有任何真因數,其計算過程請直接輸出「=0」。

範例輸入 #1
6
範例輸出 #1
1+2+3=6
6 is perfect.
範例輸入 #2
284
範例輸出 #2
1+2+4+71+142=220
1+2+4+5+10+11+20+22+44+55+110=284
284 and 220 are friends.
範例輸入 #3
11
範例輸出 #3
1=1
=0
11 has no friends.
測資資訊:
記憶體限制: 512 MB
提示 :

2022-11-25 修改測資範圍及輸出格式,請依修改後題目作答,謝謝您!不重測,但歡迎已 AC 的使用者修改程式碼後重新提交。

標籤:
出處:
板橋高中教學題 [管理者: snail (蝸牛) ]

本題狀況 本題討論 排行

編號 身分 題目 主題 人氣 發表日期
41773 sam851015@gm ... (多挖鼻孔有益身心健康) c184
99 2024-08-25 11:56
33737 s1091118@stu ... (20 顏俊宸) c184
605 2023-01-28 22:46
31697 cody20050918 ... (沐月) c184
Python 友好數解法
787 2022-08-14 22:43
30953 forkidlai (forkidlai) c184
python AC tip
775 2022-06-24 11:58
25091 cooljamesku9 ... (你要不要訂閱一塊沒有影片的餅乾...) c184
1432 2021-04-21 10:42