トップページに戻る    次のC#のサンプルへ    前のC#のサンプルへ

11-8 ダブル完全数を求める

問題

「完全数」とは、自分以外の約数の和が自分自身と等しいような整数のことです。
ここで「自分以外の約数の和が自分自身の2倍と等しいような整数」を「ダブル完全数」と呼ぶことにします。
10000以下のダブル完全数をすべて求めるコードを書いてください。


ソース

using System;

class Program
{
    static void Main()
    {
        for (int I = 1; I <= 10000; I++) {
            int YakusuuSum = 0;
            for (int J = 1; J <= I / 2; J++) {
                if (I % J == 0) YakusuuSum += J;
            }
            if (YakusuuSum == I) Console.WriteLine("{0}は完全数", I);
            if (YakusuuSum == I * 2) Console.WriteLine("{0}はダブル完全数", I);
        }
    }
}


実行結果

6は完全数
28は完全数
120はダブル完全数
496は完全数
672はダブル完全数
8128は完全数


解説

LINQを使おうと思いましたが、止めました。