7-2 找完數 (10 分)
所謂完數就是該數恰好等於除自身外的因子之和。例如:6=1+2+3,其中1、2、3為6的因子。本題要求編寫程式,找出任意兩正整數m和n之間的所有完數。
輸入格式:
輸入在一行中給出2個正整數m和n(1輸出格式:
逐行輸出給定範圍內每個完數的因子累加形式的分解式,每個完數佔一行,格式為「完數 = 因子1 + 因子2 + … + 因子k」,其中完數和因子均按遞增順序給出。若區間內沒有完數,則輸出「none」。
輸入樣例:
2 30
輸出樣例:
6 = 1 + 2 + 3
28 = 1 + 2 + 4 + 7 + 14
#include
#include
#include
using namespace std;
int a[
1000
], at;
int b[
1000
], bt;
intis
(int x)}if
(sqrt
(x)-
(int
)sqrt
(x)<
1e-3
) tot +
=sqrt
(x), a[at++]=
sqrt
(x);
//單獨判斷平方根
if(tot == x)
return1;
else
return0;
}int
main()
for(
int i = bt-
1;i >=
0;i--
) cout<} m++;}
if(!ok) cout<<
"none"
}
7 45 找完數(20 分)
所謂完數就是該數恰好等於除自身外的因子之和。例如 6 1 2 3,其中1 2 3為6的因子。本題要求編寫程式,找出任意兩正整數m和n之間的所有完數。輸入格式 輸入在一行中給出2個正整數m和n 1 m n 10000 中間以空格分隔。輸出格式 逐行輸出給定範圍內每個完數的因子累加形式的分解式,每個完數...
7 45 找完數(20 分)
所謂完數就是該數恰好等於除自身外的因子之和。例如 6 1 2 3,其中1 2 3為6的因子。本題要求編寫程式,找出任意兩正整數m和n之間的所有完數。輸入在一行中給出2個正整數m和n 1 逐行輸出給定範圍內每個完數的因子累加形式的分解式,每個完數佔一行,格式為 完數 因子1 因子2 因子k 其中完數和...
7 45 找完數 (20 分)
所謂完數就是該數恰好等於除自身外的因子之和。例如 6 1 2 3,其中1 2 3為6的因子。本題要求編寫程式,找出任意兩正整數m和n之間的所有完數。輸入在一行中給出2個正整數m和n 1逐行輸出給定範圍內每個完數的因子累加形式的分解式,每個完數佔一行,格式為 完數 因子1 因子2 因子k 其中完數和因...