題目1050:完數

時間限制:1 秒

內存限制:32 兆

特殊判題:

提交:4423

解決:1794

題目描述:

    求1-n內的完數,所謂的完數是這樣的數,它的所有因子相加等於它自身,比如6有3個因子1,2,3,1+2+3=6,那麼6是完數。即完數是等於其所有因子相加和的數。

輸入:

    測試數據有多組,輸入n,n數據範圍不大。

輸出:

    對於每組輸入,請輸出1-n內所有的完數。如有案例輸出有多個數字,用空格隔開,輸出最後不要有多餘的空格。

樣例輸入:
6
樣例輸出:
6
來源:
2010年哈爾濱工業大學計算機研究生機試真題
答疑:
解題遇到問題?分享解題心得?討論本題請訪問:http://t.jobdu.com/thread-7774-1-1.html
#include<stdio.h>
int main()
{
    int i,j,n,m;
    while(scanf("%d",&n) != EOF)
    {
        int flag = 0;
        for(i = 2; i <= n; i++)
        {
            m = 0;
            for(j = 1; j < i; j++)
            {
                if(i % j == 0)
                {
                    m += j;
                }
            }
            if(m == i)
            {
                flag ++;
                if(flag == 1)
                {
                    printf("%d",i);
                }
                if(flag > 1)
                {
                    printf("% d",i);
                }
            }
        }
        printf("\n");
 
    }
    return 0;
}


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章