思路:
1、假设要求a和b的最小公倍数,记为符号[a,b]。另外记a和b的最大公约数为符号(a,b)。
2、由百度百科最小公倍数_百度百科得知:a*b=[a,b]*(a,b)。所以如果我们要求最小公倍数(a,b),可以先求出最大公约数(a,b),再用(a,b)=a*b/[a,b]求得最小公倍数。
c++代码:
#include<iostream>
using namespace std;
//辗转相除法(欧几里德算法)求最大公约数
int function_gcd(int x, int y)
{
int temp;
if(x<y){
temp=y;
y=x;
x=temp;
}
while(x%y!=0)
{ //定理:两个整数的最大公约数等于其中较小的那个数和两数相除余数的最大公约数。
temp=x;
x=y;
y=temp%y;
}
return y;
}
//求最小公倍数
int function_lcm(int x,int y){
int gcd=function_gcd(x,y);
return (x*y)/gcd;
}
int main(){
int x=56,y=32;
cout<<function_lcm(x,y)<<endl;
return 0;
}