完全数程序(我这样写的,怎么错了)

来源:百度知道 编辑:UC知道 时间:2024/05/20 13:28:38
#include <stdio.h>
void main()
{
int n,d,e,sum=0;
scanf("%d",&n);
for(d=1;d<=n;d++)
{
for(e=1;e<d;e++)
{
if(d%e==0)
{
sum=sum+e;
}
if(sum==d)
{
printf("%d",d);
}
}

}
}
/*如果一个大于2的整数的不包含它自身的约数(即能将其整除的数)之和恰好等于它本身,则称其为完全数。
如:6=1+2+3,所以,6是个完全数。给定一个数N,编程从小到大输出小于等于N的所有完全数。*/

void main()
{
int n,d,e,sum=0;
scanf("%d",&n);
for(d=1;d<=n;d++)
{
for(e=1;e<d;e++)
{
if(d%e==0)
{
sum=sum+e;
}
}
if(sum==d)
{
printf("%d",d);
}

}
}

/***语句和{}的位置调整,注意循环的层次***/

main()
{
long i,j,k,sum;
long h=0;
long a[100],b[100];
for(i=5;i<范围;i++)
{
k=0;
sum=0;
for(j=1;j<i;j++)
if(i%j==0) a[k++]=j;
for(j=0;j<k;j++)
sum=sum+a[j];
if(sum==i) b[h++]=i;
}

for(i=0;i<h;i++)
printf("%d\t",b[i]);
}