【問題描述】
輸入一個大於 1 的正整數 n,請你將大於 1 和小於或等於 n 的所有完全數輸出。所謂完全數就是因子(不算其本身)之和等於它本身的數。例如 1+2+4+7+14=28,所以 28 是完全數。如果有多個完全數,每兩個完全數之間用一個空格隔開,如果沒有,請輸出 0 。
【代碼展示】
# include<iostream>
using namespace std;
int main(){
int n,s;
cin >> n;
for(int i=2;i<=n;i++){
s=0;
// 計算i因數的和
for(int j=1;j<=i/2;j++){
// 判斷i是不是合數
if(i%j==0){
s += j;
}
}
// 注意if的位置
if(s==i){
cout << i << " ";
}
}
return 0;
}