C趣味程序百例(07)完全數(shù)

字號(hào):

24.完全數(shù)
     如果一個(gè)數(shù)恰好等于它的因子之和,則稱該數(shù)為“完全數(shù)”。
    *題目分析與算法設(shè)計(jì)
     根據(jù)完全數(shù)的定義,先計(jì)算所選取的整數(shù)a(a的取值1~1000)的因子,將各因子累加于m,若m等于a,則可確認(rèn)a為完全數(shù)。
    *程序說明與注釋
    #include
    void main()
    {
     int a,i,m;
     printf("There are following perfect numbers smaller than 1000:\n");
     for(a=1;a<1000;a++) /*循環(huán)控制選取1~1000中的各數(shù)進(jìn)行判斷*/
     {
     for(m=0,i=1;i<=a/2;i++) /*計(jì)算a的因子,并將各因子之和m=a,則a是完全數(shù)輸出*/
     if(!(a%i))m+=i;
     if(m==a)
     printf("%4d ",a);
     }
     printf("\n");
    }
    *運(yùn)行結(jié)果
     TThere are following perfect numbers smaller than 1000:
     6 28 496