#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <stack>
#include <map>
using namespace std;
int gcd(int a, int b) {
if (a == 0) {
return b;
}
if (b == 0) {
return a;
}
return gcd(b, a % b);
}
int main() {
int m, n;
while (scanf("%d%d", &m, &n) != EOF) {
int t = gcd(m, n);
printf("%d\n", t);
}
}
// 64 位输出请用 printf("%lld")
gcd(a, b) = gcd(b, a % b) 位置不能换!!!
不断重复该过程,直到问题缩小为某个非0数与0的最大公约数,则非零数为所求的数。

京公网安备 11010502036488号