Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

การคำนวณ LCM ของตัวเลขหลายตัวใน JavaScript


เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของตัวเลขที่มีความยาวเท่าใดก็ได้และส่งกลับ LCM ของพวกมัน

เราจะแก้ไขปัญหานี้ในส่วนต่างๆ -

ตอนที่ 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