#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>

int gcd(int a, int b) {
	if ([[quiz]]) {
		return [[quiz]];
	}
	else {
		return [[quiz]];
	}
}

int solution(int** arr, int arr_row_len, int arr_col_len, int N) {
	int answer = 0;

	for (int i = 0; i < N; i++) {
		int a = arr[i][0];
		int b = arr[i][1];

		if (a < b) {
			int temp = a;
			a = b;
			b = temp;
		}

		int c = gcd(a, b);

		if (c > answer) {
			answer = c;
		}

	}

	return answer;
}

int main() {
    int N1 = 5;
    int arr1_row_len = 5;
	int arr1_col_len = 2;
	int** arr1 = (int**)malloc(sizeof(int*) * arr1_row_len);
	for(int i = 0; i < arr1_row_len; i++)
		arr1[i] = (int*)malloc(sizeof(int) * arr1_col_len);

	arr1[0][0] = 15;
	arr1[0][1] = 20;
	arr1[1][0] = 36;
	arr1[1][1] = 48;
	arr1[2][0] = 12;
	arr1[2][1] = 7;
	arr1[3][0] = 121;
	arr1[3][1] = 44;
	arr1[4][0] = 39;
	arr1[4][1] = 65;
    int ret1 = solution(arr1, arr1_row_len, arr1_col_len, N1);
	// [실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
	printf("solution 함수의 반환 값은 %d입니다.\\n", ret1);
    
    int N2 = 5;
    int arr2_row_len = 5;
	int arr2_col_len = 2;
	int** arr2 = (int**)malloc(sizeof(int*) * arr2_row_len);
	for(int i = 0; i < arr2_row_len; i++)
		arr2[i] = (int*)malloc(sizeof(int) * arr2_col_len);

	arr2[0][0] = 356;
	arr2[0][1] = 78;
	arr2[1][0] = 154;
	arr2[1][1] = 122;
	arr2[2][0] = 38;
	arr2[2][1] = 190;
	arr2[3][0] = 44;
	arr2[3][1] = 188;
	arr2[4][0] = 365;
	arr2[4][1] = 245;
int ret2 = solution(arr2, arr2_row_len, arr2_col_len, N2);
	// [실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
	printf("solution 함수의 반환 값은 %d입니다.\\n", ret2);

}