C语言:一个数如果恰好等于它的因子之和,这个数就称为"完数"。请编写C程序,找出1000之内的所有完数。

2024-11-21 09:56:52
推荐回答(1个)
回答1:

按照你的要求编写的求1000以内完数的C语言程序如下

#include
int a[32],count=0;
int factorSum(int x)
{
 int i,sum=0;
 count=0;
 for(i=1;i  if(x%i==0){
   a[count]=i;
   sum+=i;
   count++;
  }
 return sum;
}
int main()
{
 int i,j;
 for(i=1;i<=1000;i++)
  if(i==factorSum(i))
  {
   printf("%d=",i);
   for(j=0;j    if(j==count-1)
     printf("%d",a[j]);
    else
     printf("%d+",a[j]);
   }
   printf("\n");
  }
 return 0;
}

运行结果
6=1+2+3
28=1+2+4+7+14
496=1+2+4+8+16+31+62+124+248