Computer >> Máy Tính >  >> Lập trình >> Javascript

Tính toán LCM của nhiều số trong JavaScript

Chúng tôi được yêu cầu viết một hàm JavaScript nhận vào một mảng số có độ dài bất kỳ và trả về LCM của chúng.

Chúng ta sẽ tiếp cận vấn đề này theo từng phần -

Phần 1 - Chúng tôi sẽ tạo một hàm trợ giúp để tính Ước chung lớn nhất (GCD) của hai số

Phần 2 - Sau đó, sử dụng hàm trợ giúp Phần 1, chúng ta sẽ tạo một hàm trợ giúp khác để tính Bội số chung ít nhất (LCM) của hai số.

Phần 3 - Cuối cùng, sử dụng hàm helper Phần 2, chúng ta sẽ tạo một hàm lặp trên mảng và tính toán LCM của mảng.

Ví dụ

Mã cho điều này sẽ là -

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));

Đầu ra

Và đầu ra trong bảng điều khiển sẽ là -

2520