输入:两个数m,n
输出:他们的最大公约数,和最小公倍数
//输入数据 16 20
//16/20 0 16
//20/16 1 4
//16/4 4 0
//4为最大公约数
//4*4*5=80,为最小公倍数
//基本思想:辗转相除法
//方法一:递归
#include <iostream>
using namespace std;
int gcd(int m,int n){
if(n==0){
return m;
}else{
return gcd(n,m%n);
}
}
int main(){
int m,n;
cin>>m>>n;
int maxComDiv=gcd(m,n);
int minLeaMul=(m/maxComDiv)*(n/maxComDiv)*maxComDiv;
cout<<maxComDiv<<endl;
cout<<minLeaMul<<endl;
system("pause");
}
方法二:循环
nt main(){
int m,n;
cin>>m>>n;
int a=m,b=n;
while(a%b!=0){
int temp=a%b;
a=b;
b=temp;
}
int maxComDiv=a/b;
int minLeaMul=(m/maxComDiv)*(n/maxComDiv)*maxComDiv;
cout<<maxComDiv<<endl;
cout<<minLeaMul<<endl;
system("pause");
}