Problem:
Greatest Common Divisor

Write a program which finds the greatest common divisor of two natural numbers a and b

Input

a and b are given in a line sparated by a single space.

Output

Output the greatest common divisor of a and b.

Constrants

1 ≤ a, b ≤ 109

Hint

You can use the following observation:

For integers x and y, if x ≥ y, then gcd(x, y) = gcd(y, x%y)

Sample Input 1

54 20

Sample Output 1

2

Sample Input 2

147 105

Sample Output 2

21

Solution in JAVA (judge verdict: Accepted)

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

class Main {
    public static void main(String[] args) {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String[] data;
        long[] nums = new long[2];
        long tmp = 0;
        try {
            data = br.readLine().split(" ");
            for (int i = 0; i < 2; i++)
                nums[i] = Integer.parseInt(data[i]);

            while (nums[0] != 0) {
                if (nums[0] < nums[1]) {
                    tmp = nums[0];
                    nums[0] = nums[1];
                    nums[1] = tmp;
                }
                nums[0] -= nums[1];
            }
            System.out.println(nums[1]);
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
}