使用辗转相除法和递归求两个正整数m和n的最大公约数。
输入格式:
输入两个正整数m,n。
输出格式:
按要求输出辗转相除过程及最终结果,输出结果之间空格分隔。
输入样例:
21 35
输出样例:
gcd(21,35) gcd(35,21) gcd(21,14) gcd(14,7) 7
#include<bits/stdc++.h>
using namespace std;
int fun(int a,int b){
int t;
if(a%b==0)return b;
else{
t=a%b;
a=b;
b=t;
fun(a,b);
}
}
int main(){
int a,b,x;
cin>>a>>b;
printf("gcd(%d,%d)",a,b);
if(a<b){swap(a,b);printf(" gcd(%d,%d)",a,b);}
while(a%b){
x=a%b;
a=b;
b=x;
printf(" gcd(%d,%d)",a,b);
}
cout<<' '<<fun(a,b);
return 0;
}