トップページに戻る    次の競技プログラミングの問題へ    前の競技プログラミングの問題へ

ABC-032-A 高橋君と青木君の好きな数

■■■問題■■■

青木君は整数aで割り切れる数が好きです。高橋君は整数bで割り切れる数が好きです。
n以上の整数で、青木君と高橋君の両方が好きな最小の数を答えてください。

■■■入力■■■

a
b
n

●1行目には、整数 a(1 <= a <= 100) が与えられる。
●2行目には、整数 b(1 <= b <= 100) が与えられる。
●3行目には、整数 n(1 <= n <= 2万) が与えられる。

■■■出力■■■

1行目に、n以上の整数で青木君と高橋君の両方が好きな数の最小値を出力せよ。末尾の改行を忘れないこと。


C#のソース

using System;
using System.Collections.Generic;

class Program
{
    static string InputPattern = "InputX";

    static List<string> GetInputList()
    {
        var WillReturn = new List<string>();

        if (InputPattern == "Input1") {
            WillReturn.Add("2");
            WillReturn.Add("3");
            WillReturn.Add("8");
            //12
            //12は8以上の整数のうち、2と3で割り切れるものの最小値です
        }
        else if (InputPattern == "Input2") {
            WillReturn.Add("2");
            WillReturn.Add("2");
            WillReturn.Add("2");
            //2
        }
        else if (InputPattern == "Input3") {
            WillReturn.Add("12");
            WillReturn.Add("8");
            WillReturn.Add("25");
            //48
        }
        else {
            string wkStr;
            while ((wkStr = Console.ReadLine()) != null) WillReturn.Add(wkStr);
        }
        return WillReturn;
    }

    static void Main()
    {
        List<string> InputList = GetInputList();
        int a = int.Parse(InputList[0]);
        int b = int.Parse(InputList[1]);
        int n = int.Parse(InputList[2]);
        for (int LoopN = n; LoopN < int.MaxValue; LoopN++) {
            if (LoopN % a == 0 && LoopN % b == 0) {
                Console.WriteLine(LoopN);
                break;
            }
        }
    }
}


解説

aもbも100以下で制約が緩いので、
n以上の数をループさせて、aとbの公倍数かを調べてます。