Codeup 1783 問題 B: 完數

題目鏈接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;
}
發佈了186 篇原創文章 · 獲贊 9 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章