题目描述
输入两个正整数,求其最大公约数。
输入描述
测试数据有多组,每组输入两个正整数。
输出描述
对于每组输入,请输出其最大公约数。
输入
49 14
输出
7
代码
常规法
#include<iostream>
#include<algorithm>
using namespace std;
int main(){
int i,x,y;
while(cin>>x>>y){
int Min=min(x,y);
for(int i=Min;i>=1;i--){
if(x%i==0&&y%i==0){
cout<<i<<endl;
break;
}
}
}
return 0;
}
进阶版1:辗转相除法
#include<iostream>
using namespace std;
int GCD(int a,int b){
return a%b?GCD(b,a%b):b;
}
int main(){
int x,y;
while(cin>>x>>y){
cout<<GCD(x,y)<<endl;
}
return 0;
}
进阶版2:
#include<iostream>
using namespace std;
int gcd(int a,int b){
if(a%b==0)
return b;
return gcd(b,a%b);
}
int main(){
int x,y;
cin>>x>>y;
cout<<gcd(x,y)<<endl;
return 0;
}
来源:CSDN
作者:刷题小狂魔
链接:https://blog.csdn.net/kz_java/article/details/104519067