【题目描述】
给定两个正整数,求它们的最大公约数。
【输入】
输入一行,包含两个正整数(<1,000,000,000)。
【输出】
输出一个正整数,即这两个正整数的最大公约数。
【输入样例】
6 9
【输出样例】
3
题目分析
此题目用暴力不易通过,用辗转相除法。
求 a b 最大公约数
步骤:用max(a,b)%min(a,b)得x。
如果x==0,则结束,且结果为两者中小的那个。
如果x!=0,则min(a,b)%x(x肯定小于a或者b),如此循环。
代码
#include<bits/stdc++.h>
using namespace std;
int gcd(int a,int b){
if(a%b==0){
return b;
}
else{
return gcd(b,a%b);
}
}
int main(){
int n,m;
cin>>n>>m;
cout<<gcd(max(n,m),min(n,m))<<endl;
return 0;
}