标题:
完数
类别:
时间限制:
2 S
内存限制:
10000 Kb
问题描述:
请写一个程序,给出指定整数范围[a,b]内的所有完数,0 < a < b < 10000。
一个数如果恰好等于除它本身外的所有因子之和,这个数就称为"完数"。
例如6是完数,因为6=1+2+3
输入说明
输入为两个整数a和b,a和b之间用空格分隔
输出说明
输出[a,b]内的所有完数,每个数字占一行
输入样例
1 10
输出样例
6
我之前写的虽然能应付系统,但根本是不对的解法。可见,学校的oj系统也不是那么靠谱,写代码还是要自己多想想,多改改。在经过了很长时间还是想不通的话,就去请教大佬,问题解决就是分分钟的事。
现已修改最新版本,绝对良心!!!
需注意:sum归零的问题。
# include <stdio.h>
int main()
{
int a, b, sum = 0, i;
scanf ("%d %d", &a, &b);
for ( i = a; i <= b; i++)
{ sum = 0;
for (int j = 1; j < i; j++)
{
if (i % j == 0)
{
sum = sum + j;
}
}
if (sum == i )
{
printf ("%d\n", i);
}
}
return 0;
}