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 main(void) {
  long X,Y,n,q=1;
  scanf("%ld %ld\n",&X,&Y);

  if(X==Y) {
    printf("%ld\n",X);
    return 0;
  }
  if(Y>X) {
    long t=X;X=Y;Y=t;
  }
  if(Y==1) {
    printf("1\n");
    return 0;
  }
  X=X%Y;
  for(n=2;n<(Y/2);n++){
    if((!(X%n))&&(!(Y%n)))
      q=n;
  }
  printf("%ld\n",q);
  return 0;
}