문제설명:
두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 합니다.
function solution(n, m) {
let result = [];
let gcd = 0;
let lcm = 0;
let num = n > m ? n : m;
for(let i = 1; i <= num; i++) {
if(n % i === 0 && m % i === 0) {
gcd = i;
}
}
lcm = n * m / gcd;
result.push(gcd, lcm);
return result;
}
문제풀이
최대공약수와 최소공배수를 담아줄 배열 result를 선언하고 최대공약수를 담아줄 변수와 최소공배수를 담아줄 변수를 선언한다. n과 m의 크기를 비교하여 더 큰 수를 num에 할당해주고 반복문을 통해 최대공약수를 gcd에 할당해준다. gcd에 할당된 최대공약수를 이용하여 최소공배수를 구하여 result 배열에 담아 리턴해준다.