输出1000以内的完数
#include<stdio.h>
int main()
{
int i,n,sum;
for(n=2;n<=1000;n++)
{
sum=0;
for(i=1;i<n;i++)
{
if(n%i==0)sum+=i;
}
if(sum==n)
{
printf("%d its factors are ",n);
for(i=1;i<n;i++)
{
if(n%i==0)
printf("%5d",i);
}
printf("\n");
}
}
return 0;
}
求任意范围内的完数
#include<stdio.h>
int main()
{
int i,n,sum,a;
scanf("%d",&a);
for(n=2;n<=a;n++)
{
sum=0;
for(i=1;i<n;i++)
{
if(n%i==0)sum+=i;
}
if(sum==n)
{
printf("%d its factors are ",n);
for(i=1;i<n;i++)
{
if(n%i==0)
printf("%d ",i);
}
printf("\n");
}
}
return 0;
}