//土尔逊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")