C语言求1000内的完数!完数为等于该数各因子之和的数!请高手检查下错误!

来源:百度知道 编辑:UC知道 时间:2024/06/17 04:22:36
#include<stdio.h>
void main()
{
int i,j,c,sum=0;
for(i=1;i<=1000;i++)
{
for(j=1;j<=i;j++)
{
c=i%j;
if(c==0);
sum=sum+j;
}
if(sum==i)
printf("%d ",i);
}
}

假设这个数为A,你把1和A本身也算作因子,那么这样因子的和至少也有A+1,所以找不到完数。

硬是...题有错...

改好啦,已经用TC运行正常,慢慢看。。。
#include<stdio.h>
void main()
{
int i,j,sum;
for(i=1;i<=1000;i++)
{
sum=0;
for(j=1;j<i;j++)
if(i%j==0)
sum=sum+j;
if(sum==i)
printf("%d ",i);
}
}