输入两个整数 aa 和 bb,请你编写一个函数,int lcm(int a, int b)
,计算并输出 aa 和 bb 的最小公倍数。
设有两个数x,y 他们的最大公约数m
即:x=a*m;
y=b*m;
a,b互质,如果a,b 不互质的话 最大公约数就不是m
所以x,y 的最小公倍数就是a*b*m;
a*b*m=(a*m*b*m)/m=(x*y)/m
最小公倍数 = 两数乘积 / 最大公约数
#include <iostream>
using namespace std;
int lcm(int a, int b);
int gcd(int a, int b);
int main(){
int a,b,i=1;
cin >>a>>b;
int d=gcd(a,b);
cout <<a*b/d;
return 0;
}
int gcd(int a, int b){
while(b){
int temp=a%b;
a=b;
b=temp;
}
return a;
}