題目鏈接:http://codeup.cn/problem.php?cid=100000592&pid=1
題目描述
求1-n內的完數,所謂的完數是這樣的數,它的所有因子相加等於它自身,比如6有3個因子1,2,3,1+2+3=6,那麼6是完數。即完數是等於其所有因子相加和的數。
輸入
測試數據有多組,輸入n,n數據範圍不大。
輸出
對於每組輸入,請輸出1-n內所有的完數。如有案例輸出有多個數字,用空格隔開,輸出最後不要有多餘的空格。
樣例輸入
6
樣例輸出
6
代碼
#include<stdio.h>
bool comput(int n) {
int sum = 0;
for(int i = 2; i <= n / 2; i++) {
if(n % i == 0)
sum += i;
}
if(sum == n - 1)
return true;
else
return false;
}
int main() {
int n;
while(scanf("%d", &n) != EOF) {
int t = 0;
for(int i = 2; i <= n; i++) {
if(comput(i) == true){
if(t > 0)
printf(" ");
printf("%d", i);
t++;
}
}
printf("\n");
}
return 0;
}