求1000之內的全部完數

static void Main(string[] args)
{
    //求1-1000內全部的完數
    //徹底數,又稱完美數或完備數,是一些特殊的天然數:它全部的真因子(即除了自身之外的約數)的和,剛好等於它自己。例如6: 6=1+2+3
    //真因子,是全部能夠整除這個數的數,可是不包括這個數自身
                
    //遍歷1到1000
    for (int i = 1; i <= 1000; i++)
    {
        int sum = 0;    //定義一個變量用來存儲一個數的全部因子的和
        //遍歷一個數的真因子
        //一個整數的真因子都小於或等於這個數的一半,全部只須要遍歷到i/2
        for (int j = 1; j <= i/2; j++)
        {
            if (i % j == 0) //判斷是否能夠被整除,能夠即爲真因子
            {
                sum += j; //全部真因子的和
            }
        }
        if (i == sum) //判斷整數是否等於它全部真因子的和
        {
            Console.WriteLine(i + "是一個完數");
        }               
    }
    Console.ReadKey();
}

結果是:六、2八、496。
c#

相關文章
相關標籤/搜索