B - 割り切れる日付 / AtCoderRegularContest#002

arc002.contest.atcoder.jp

import java.io.*;
import java.util.*;

public class Main   {
    public static int Y, M, D;

    private void Input() {
        Scanner sc = new Scanner(System.in);
        String[] str = sc.next().split("/");

        Y = Integer.valueOf(str[0]);
        M = Integer.valueOf(str[1])-1;
        D = Integer.valueOf(str[2]);
    }

    private void Solve()    {
        Calendar cal = Calendar.getInstance();

        cal.set(Y,M,D);
        while (true)    {
            Y = cal.get(Calendar.YEAR);
            M = cal.get(Calendar.MONTH)+1;
            D = cal.get(Calendar.DATE);
            if (Y%(M*D) == 0)   break;
            cal.add(Calendar.DAY_OF_MONTH,1);
        }
    }

    private void Output()   {
        PrintWriter pw = new PrintWriter(System.out);

        pw.printf ("%04d/%02d/%02d\n", Y, M, D);
        pw.flush();
    }

    public static void main(String[] args)  throws Exception  {
        Main instance = new Main();

        instance.Input();
        instance.Solve();
        instance.Output();
    }
}

JavaのCalendarを用いて、日付の数値取得や加算などを行い割り切れた場合、その日付を出力。
〜了〜