C 練習(xí)實(shí)例19

C 語言經(jīng)典100例 C 語言經(jīng)典100例

題目:一個(gè)數(shù)如果恰好等于它的因子之和,這個(gè)數(shù)就稱為"完數(shù)"。例如6=1+2+3.編程找出1000以內(nèi)的所有完數(shù)。

程序分析:請(qǐng)參照:C 練習(xí)實(shí)例14。

程序源代碼:

//  Created by hgci.cn on 15/11/9.
//  Copyright © 2015年 W3Cschool教程. All rights reserved.
//

#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;
}

以上實(shí)例輸出結(jié)果為:

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

C 語言經(jīng)典100例 C 語言經(jīng)典100例