1. 程式人生 > >一個數如果恰好等於它的因子之和(包括1,但不包括這個數本身),這個數就稱為“完數,求1-1000中的完數

一個數如果恰好等於它的因子之和(包括1,但不包括這個數本身),這個數就稱為“完數,求1-1000中的完數

/*問題分析:問題中不是要質因數,所以找到的因數後就無需將其從資料中“除掉”。每個因數只記一次
如:8的因數為1,2,4而不是1,2,2,2,4*/

#include<stdio.h>

int main()
{
int i,k,j,s,a[20];
for(i=1;i<=1000;i++)
{
s=1;
k=0;
for(j=2;j<i;j++)
if(i%j==0)
{
s+=j;
a[k]=j;
k++;
}
if(i==s)
{
printf("%d = 1",s);
for(j=0;j<k;j++)
printf("%+d",a[j]);
printf("\n");
}
}

}