어떤 길이의 숫자 배열을 가져와서 해당 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