输出与其公因子之和相同的整数
一个正整数如果恰好等于它的因子之和,这个数就称为"完数"。 例如,6的因子为1、2、3,而6=1+2+3,因此6是"完数"。 输入一个正整数n,编程序输出从2到n间的所有完数。
上面的题目要求
比如输入50,
结果为6
28
我自己输入的代码为
#include<stdio.h>
int main()
{
int n,i,j,s=0;
scanf("%d",&n);
for(j=3;j<=n;j++)
for(i=1;i<j;i++)
{
if(j%i==0)
{
s+=i;
if(j==s)
printf("%d\n",j);
}
}
return 0;
}
一开始那个J的for循环没带,输入6,或者28 都可以输出 不过只能输出一个 不是输入位数以下所有符合条件的整数 所以又加了一个J的for循环 但是输入50 却一个输出都没有 看了很久 没想出来是什么问题
希望有人可以指导下