#include<iostream>
using namespace std;
#if 0//暴力法
int main()
{
int m, n, x, d;//m,n为键盘输入的值;x为较小值
printf("请输入两个整数:");
cin >> m >> n;
x = m > n ? n : m;
for (int i = x; i > 0; i--) {
if (m % i == 0 && n % i == 0) {
printf("最大公约数为:%d", i);
break;
}
}
return 0;
}
#endif
#if 1//欧几里得算法
int main()
{
int m, n, r;//m,n为键盘输入的值;r为余数
printf("请输入两个整数:");
cin >> m >> n;
r = m % n;
while (r != 0) {
m = n;
n = r;
r = m % n;
}
printf("最大公约数为:%d", n);
return 0;
}
#endif
/*
* 最大公约数(辗转相除法)递归
*/
#include<iostream>
using namespace std;
int gcd(int a, int b) {
if (b == 0) return a;
return gcd(b, a % b);
}
int main()
{
int a, b;
cin >> a >> b;
cout << gcd(a, b);
return 0;
}