//最大公约数
#include<bits/stdc++.h>
using namespace std;
int Gcd(int m,int n)
{
return (n==0)? m : Gcd(n,m % n); // 辗转相除
}
int main()
{
int n,m;
cin>>m>>n;
cout<<Gcd(m,n);
return 0;
}
//高精度辗转相除
因为只涉及除,总体更适合高进度的算法
#include<bits/stdc++.h>
using namespace std;
int Gcd(int m,int n)
{
if(n==m) return m;
if(m<n) return Gcd(n,m);
(n & 1== 0)? 2*Gcd(m/2,n/2):Gcd(m/2,n);
return (n & 1==0)? Gcd(m,n/2): Gcd(n,m-n);
}
int main()
{
int m,n;
cin>>m>>n;
cout<<Gcd(m,n);
return 0;
}