function solution(n, m) {
let ans = [];
let a = n;
let b = m;
// 유클리드 호제법. 최대공약수 구하기
while(a % b !== 0){
let r = a % b;
if(r !== 0){
a = b;
b = r;
}
}
ans.push(b);
// 최소공배수 = 두 자연수의 곱 / 최대공약수
let min = (n * m) / b;
ans.push(min);
return ans;
}
유클리드 호제법을 사용하여 최대공약수를 구한다.
최소공배수는 두 자연수의 곱을 최대공약수로 나눠서 얻을 수 있다.
유클리드 호제법을 사용한 백준 문제를 몇 가지 풀었었는데, 여기에 가면 필자의 풀이가 있다.