Codeup 1783 问题 A: 完数

题目链接http://codeup.cn/problem.php?cid=100000592&pid=0

题目描述
求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;
}
发布了162 篇原创文章 · 获赞 7 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Rhao999/article/details/104212462