具体算法思路可见百度百科,代码如下:
#include<iostream>
#include<algorithm>
using namespace std;
int f(int x,int y);
int main()
{
int a,b;
cin>>a>>b;
int total=1;
while(a%2==0&&b%2==0)
{
a/=2;
b/=2;
total*=2;
}
cout<<total*f(a,b)<<endl;
return 0;
}
int f(int x,int y)
{
if(x==y)
{
return x;
}
return f(x>y?x-y:x,x>y?y:y-x);
}