/*
** $ javac Modulo-2.java
** $ java Modulo 2000000000 12
** result.......: 1099999984
** elapsed time.: 12540.00 ms
** one iteration: 6.270 ns
*/

class Modulo {

    static final long N = 10;

    public static long run(long iterations, long m) {
        long result = 0;
        for (long i=0; i < iterations; i++) {
            result += i % m;
        }
        return result;
    }

    public static void main(String[] args) {
        long result = 0;
        long iterations = Integer.parseInt(args[0]) / N;
        long m = Integer.parseInt(args[1]);

        long start = System.currentTimeMillis();
        for (int i = 0; i < N; i++) {
            result = run(iterations, m);
        }
        long finish = System.currentTimeMillis();

        double elapsed = finish - start;
        System.out.println("result.......: " + result);
        System.out.println("elapsed time.: " + String.format("%.2f", elapsed) + " ms");
        System.out.println("one iteration: " + String.format("%.3f", elapsed * (1000000.0 / (iterations * N))) + " ns");
    }
}
