トップページに戻る
次の増井さんの書籍の問題へ
前の増井さんの書籍の問題へ
Q03 カードを裏返せ
C#のソース
using System;
class Program
{
static void Main()
{
const int UB = 100;
bool[] IsOmoteArr = new bool[UB + 1];
for (int n = 2; n <= UB; n++) {
for (int I = n; I <= UB; I += n) {
IsOmoteArr[I] = !(IsOmoteArr[I]);
}
}
for (int I = 1; I <= UB; I++) {
if (IsOmoteArr[I] == false)
Console.Write("{0},", I);
}
Console.WriteLine();
}
}
実行結果
1,4,9,16,25,36,49,64,81,100,
解説
約数の個数が偶数の場合は、1以外の約数の数が奇数なので、カードは反転される。
約数の個数が奇数の場合は、1以外の約数の数が偶数なので、カードは反転されない。
約数の個数が奇数の数は、平方数なので、100以下の平方数が解となります。