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 C (judge verdict: Time Limit Exceeded)

#include <stdio.h>

//最大公約数を求める
int gcd(int x, int y);
//最小値を返す
int min(int a, int b);

int main(void)
{
	int x;	//整数
	int y;	//整数

	//2つの整数を入力する
	scanf("%d%d", &x, &y);

	//結果を出力する
	printf("%d\n", gcd(x, y));

	return 0;
}

//最大公約数を求める
int gcd(int x, int y)
{
	int g = 0;	//最大公約数
	int n = 0;
	int i = 0;

	if (x == y)
	{
		g = x;
	}
	else
	{
		for (i = 1; i < min(x, y); i++)
		{
			if ((x % i == 0) && (y % i == 0))
			{
				if (g < i)
				{
					g = i;
				}
				else
				{
					//何もしない
				}
			}
			else
			{
				//何もしない
			}
		}
	}

	//結果を返す
	return g;
}

//最小値を返す
int min(int a, int b)
{
	return (a >= b) ? b : a;
}