トップページに戻る
次の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を使おうと思いましたが、止めました。