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() {
  int a, x, y , i, z[100000] , k = 0, j = 0, s[100000], t=1;
  
  scanf ("%d %d", &x, &y ) ;
  
  for ( i = 0 ; i < 100000 ; i++ ){
  z[i] = 0 ; 
  s[i] = 0 ;
}

  if ( x >= y ) {
	a = x % y ;
	for ( i = 1 ; i <= y ; i++ ) {
		if ( y % i == 0 ) {
			z[k] = i ;
			k++ ;
			
		}
		if ( a % i== 0 ) {
			s[j] = i ;
			j++ ;
		}
	
	}
}
	else if ( x < y ) {
	a = y % x ; ;
	for ( i = 1 ; i <= x ; i++ ) {
		if ( x % i == 0 ) {
			z[k] = i ;
			k++ ;
		}
		if ( a % i== 0 ) {
			s[j] = i ;
			j++ ;
		}
	
	}
}
	k = 0 ; 
 	for ( i = 1 ; i < 100000 ; i++ ) {
		for ( j = 1 ; j < 100000 ;j++ ) {
		if (( z[i] == s[j] ) && ( z[i] != 0)) {
		t= z[i] ;
		}
		}
		

		
	}
	printf("%d\n", t) ;
return 0 ;
}