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

Problem5 1から20までの整数全てで割り切れる最小の値

問題

2520は1から10の数字の全ての整数で割り切れる数字であり、そのような数字の中では最小の値である。
では、1から20までの整数全てで割り切れる数字の中で最小の値はいくらになるか。


ソース

#include <iostream>

void main()
{
    //const int TargetVal = 10;
    const int TargetVal = 20;
    int CurrVal = TargetVal;

    while (true) {
        bool WillWhileBreak = true;
        for (int I = 2; I <= TargetVal-1; I++) {
            if (CurrVal % I != 0){
                WillWhileBreak = false;
                break;
            }
        }
        if (WillWhileBreak) break;
        CurrVal+=TargetVal; //TargetValの倍数でなければならない
    }
    std::cout << CurrVal << std::endl;
}


実行結果

232792560


解説

BOOL型ではなく、bool型を使用してます。

解法として、1から20までの数の最小公倍数を求めてもいいです。