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: Wrong Answer)

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

/*Question
/??????????????¶??° x, y ?????\?????¨???????????????????????§??¬?´???°????±???????????????°????????????????????????????????????
/???????????´??° x ??¨ y ???????????????x ?? d ??¨ y ?? d ??????????????¨?????? 0 ??¨?????? d ??????????????§???????????????x ??¨ y ????????§??¬?´???°???Greatest Common Divisor?????¨?¨?????????????
/????????°???35 ??¨14 ????????§??¬?´???° gcd (35, 14) ??? 7 ??¨???????????????????????????35 ????´???°{1, 5, 7, 35}???14 ????´???° {1, 2, 7, 14} ?????¬?´???° {1, 7} ????????§?????¨??????????????? 
*/

/*Input
/x ??¨ y ?????????????????????????????§?????????????????????????????? 
*/

public class Main {
	public static void main(String[] args) throws Exception{
		BufferedReader sc = new BufferedReader(new InputStreamReader(System.in));
		/*??\???
		/??????????´???°?????\???????¬??????°????????\???
		*/
		String[] st = sc.readLine().split(" ");
		int x = Integer.parseInt(st[0]);
		int y = Integer.parseInt(st[1]);
		GCD(x,y);
	}

	/*GCD????????????
	/?????°??????????????§??¬?´???°?????¢???????????????
	/?????????????????????????????????????????????
	/??????t???x % y ???????´?????????????x??¨y?????????????????§?????????????????????
	/????????????y % t?????????x % t???0???????????°??????t????????§??¬?´???°????????????0??????????????§??°?????????
	/0????????£??????break????????????
	*/

	public static void GCD(int x,int y) {
		//????????????x % y???????´???????????????????
		int t;
		if(x == y){
			t = x;
		}else if(x >= y){
			t = x % y;
			while(true){
				if(y % t != 0){
					t = y % t;
				}else{
					break;
				}
			}
		}else{
			t = y % x;
			while(true){
				if(x % t != 0){
					t = x % t;
				}else{
					break;
				}
			}
		}
		System.out.println(t);
	}
}