C 練習實例19
題目:一個數如果恰好等於它的因數之和,這個數就稱為"完數"。例如6=1+2+3.編程找出1000以內的所有完數。
程式分析:請參照:C 練習實例14。
實例
//  Created by www.xuhuhu.com on 15/11/9.
//  
//
#include<stdio.h>
#define N 1000
int main()
{
    int i,j,k,n,sum;
    int a[256];
    for(i=2;i<=N;i++)
    {
        sum=a[0]=1;
        k=0;
        for(j=2;j<=(i/2);j++)
        {
            if(i%j==0)
            {
                sum+=j;
                a[++k]=j;
            }
        }
        if(i==sum)
        {
            printf("%d=%d",i,a[0]);
            for(n=1;n<=k;n++)
                printf("+%d",a[n]);
            printf("\n");
        }
    }
    return 0;
}
以上實例輸出結果為:
6=1+2+3 28=1+2+4+7+14 496=1+2+4+8+16+31+62+124+248

 C 語言經典100例