代码如下:
#include <stdio.h>
void main()
{
int n;
int r,j,i;
scanf("%d",&n);
for(i=2;i<=n;i++)
{ r=0;
for(j=1;j<i;j++)
if(i%j==0)
r=r+j;
if(r==i)
printf("%d\n",i);
}
}
结果如下:
100
6
28
请按任意键继续. . .
第二种方法:
#include <stdio.h>
#include <math.h>
main()
{
int n=2,j,sum=0; //n是要遍历的数
int m;
while(n<=100)
{
sum = 0;
m=sqrt(n);
for(j=2;j<=m;j++)
if(n%j==0)
{
sum+=j;
if(j!=n/j)
sum+=n/j;
}
sum+=1;
if(sum==n)
printf("%d 是完数 \n",n);
n++;
}
}