题解 | #求最小公倍数#
求最小公倍数
https://www.nowcoder.com/practice/22948c2cad484e0291350abad86136c3
#include <iostream>
#include <cmath>
#include <vector>
using namespace std;
vector<int> func(int m, int n){
vector<int> v(m, 0);
for(int i=2;i<=sqrt(m);i++){
if (n % i ==0 && m % i ==0){
v[i-1]++;
}
}
return v;
}
int main() {
int a, b;
int ans;
while (cin >> a >> b) { // 注意 while 处理多个 case
int A = max(a, b);
int B = min(a, b);
if (A%B==0){
ans = A;
}else{
ans = A*B;
vector<int> v=func(A, B);
for(int i=2; i<=sqrt(A); i++){
if (v[i-1]>0){
ans = ans / i;
}
}
}
cout << ans << endl;
}
}
// 64 位输出请用 printf("%lld")
