两个数的乘积=这两个数的最小公倍数x最大公约数
用辗转相除法求最大公约数,再用乘积除以最大公约数,得到最小公倍数
最大公约数
#include <bits/stdc++.h>
using namespace std;
int main()
{
int a = 0;
int b = 0;
cin >> a >> b;
while (b!=0)
{
int r = a % b;
a = b;
b = r;
}
cout << a<< endl;
return 0;
}
最小公倍数
#include <bits/stdc++.h>
using namespace std;
int main()
{
int a = 0;
int b = 0;
cin >> a >> b;
int c = a * b;
while (b != 0)
{
int r = a % b;
a = b;
b = r;
}
int d = c / a;
cout << d << endl;
return 0;
}
这个比暴力法运算更短。
另一种求最小公倍数的方法
#include <bits/stdc++.h>
using namespace std;
int main()
{
int a = 0;
int b = 0;
cin >> a >> b;
int d = 0;
for (int i = 1;; i++)
{
if (a * i % b == 0)
{
d = a * i;
break;
}
}
cout << d << endl;
return 0;
}