題目連結:
題目大意:
輸入有多列,每列給定一正整數 n (2 ≦ n ≦ 1000000,當 n = 0 時代表輸入結束),試問該數為完美數(Perfect Number)還是與另一數為友好數(Amicable Numbers)?如果為完美數,則先輸出一個「=」再輸出該數;如果與另一數為友好數則輸出另一數之值;如果以上皆非則輸出「0」。
一個數字為完美數 n,代表其除自身之外所有因數之和恰好為 n。
一個數字 n 與另一數 m 為友好數,代表 n 除自身之外的因數和恰好為 m 且 m 除自身以外的因數和恰好為 n。
範例輸入:
6
220
12
0
範例輸出:
=6
284
0
解題思維:
這題有陳述過要如何計算一個數字的因數和。因此就套用該題的規則便可以判斷完美數。至於友好數,我們可以先計算 n 的因數和(假設為 S),然後再計算 S 的因數和是否為 n 即可判斷。
此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。