按照你的要求编写的求1000以内完数的C语言程序如下
#include<stdio.h>
int a[32],count=0;
int factorSum(int x)
{
int i,sum=0;
count=0;
for(i=1;i<x;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<count;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