标题: 完数 类别: 时间限制: 2 S 内存限制: 10000 Kb 问题描述: 请写一个程序,给出指定整数范围[a,b]内的所有完数,0 < a < b < 10000。 一个数如果恰好等于除它本身外的所有因子之和,这个数就称为"完数"。 例如6是完数,因为6=1+2+3 输入说明 输入为两个整数a和b,a和b之间用空格分隔 输出说明 输出[a,b]内的所有完数,每个数字占一行 输入样例 1 10 输出样例 6
#include <stdio.h>
int main()
{
int a, b, n, i;
int sum = 0;
scanf("%d %d", &a, &b);
for (n = a; n <= b; n++)
{
sum = n;
for (i = 1; i < n / 2 + 1; i++)
{
if (n % i == 0)
sum = sum - i;
}
if (sum == 0)
printf("%d\n", n);
}
return 0;
}