解题思路:利用辗转相除法(欧几里得算法):假设a为较大数,b为较小数, gcd(a,b)->gcd(b,a%b)->......
等到较小数为0时,第一个数也就是较大数,即为所求。
代码实现:
#include <bits/stdc++.h>
using namespace std;
#define int long long
int a,b;
int gcd(int a,int b)
{
int temp;
while(b) //利用while循环进行辗转相除
{
temp=a%b; //取模
a=b;
b=temp;
}
return a;
}
signed main() {
cin>>a>>b;
cout<<gcd(a,b)<<endl;
return 0;
}