题目描述
输入 2 个正整数 𝐴 , 𝐵 ,求 𝐴 与 𝐵 的最大公约数。
输入数据
2 个数 𝐴,𝐵 ,中间用空格隔开。 (1≤𝐴,𝐵≤109)
输出数据
输出 𝐴 与 𝐵 的最大公约数。
样例:
输入:
30 105
输出:
15
代码:
#include<bits/stdc++.h>
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)<<endl;
return 0;
}
解题思路:
按照辗转相除法求解即可。
先用较大数除以较小数,之后用较小数除以上一步所得的余数,如此往复直到余数为 0 。此时的除数即为 𝐺𝐶𝐷 。