어떤 길이의 숫자 배열을 가져와서 해당 LCM을 반환하는 JavaScript 함수를 작성해야 합니다.
우리는 이 문제에 부분적으로 접근할 것입니다 -
1부 − 두 숫자의 최대 공약수(GCD)를 계산하는 도우미 함수를 생성합니다.
2부 − 그런 다음 파트 1 도우미 함수를 사용하여 두 숫자의 LCM(최소공배수)을 계산하는 또 다른 도우미 함수를 만듭니다.
3부 − 마지막으로 파트 2 도우미 함수를 사용하여 배열을 반복하고 배열 LCM을 계산하는 함수를 만듭니다.
예시
이에 대한 코드는 -
const calculateLCM = (...arr) => {
const gcd2 = (a, b) => {
// Greatest common divisor of 2 integers
if(!b) return b===0 ? a : NaN;
return gcd2(b, a%b);
};
const lcm2 = (a, b) => {
// Least common multiple of 2 integers
return a * b / gcd2(a, b);
}
// Least common multiple of a list of integers
let n = 1;
for(let i = 0; i < arr.length; ++i){
n = lcm2(arr[i], n);
}
return n;
};
console.log(calculateLCM(12, 18, 7, 15, 20, 24, 28)); 출력
콘솔의 출력은 -
2520