//土尔逊Torson 编写于2023/5/08
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <cstdio>
using namespace std;
int GCD(int a, int b) { // a = g * L
if (b == 0) { // b = g * m
return a; // a = b * k + r
} // g * L = g * m * k + r
else { // r = g * (L - m * k)
return GCD(b, a%b); // 所以 a,b 的最大公约数 可以转换成 b, a mod b 的最大公约数
} // a mod b: 表示 a 除以 b 后的余数 r
}
int main() {
int a, b;
while (scanf("%d%d", &a, &b) != EOF) {
printf("%d\n", GCD(a, b)); // 调用的 GCD()函数使用了递归的思想
} // 即 欧几里得算法:又称 辗转相除法
system("pause");
return EXIT_SUCCESS;
}
// 64 位输出请用 printf("%lld")