C语言一新手问题,明天交报告..实在不会.帮帮忙~

来源:百度知道 编辑:UC知道 时间:2024/07/02 04:35:58
输出2~1000之间的所有完数,完数是指一个数的所有因子之和与该数本身相等的数.
例如
28的因子是:1,2,4,7,14,且28=1+2+4+7+14
则28是完数

帮忙写下.谢谢

#include<stdio.h>
void main()
{
int i,j,sum=0;
printf("完全数为:\n");
for(i=2;i<=1000;i++)
{
sum=0;
for(j=1;j<i;j++) {if(i%j==0) sum+=j;}
{ if(i==sum)
printf("%4d",sum); }
}
printf("\n");
}

#include<stdio.h>
void main()
{
int i,j,sum=0,n=1;
printf("结果:\n");
for(i=2;i<=1000;i++)
{
sum=0;
for(j=i/2;j>0;j--) //判断因子,从i/2 到 1即可
if(i%j==0)
sum+=j;

if(i==sum)
printf("%d:%d\n",n++,sum);
}
//14 7 4 2 1
}