Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

การหาตัวคูณร่วมน้อยที่สุดของอาร์เรย์ตัวเลขใน JavaScript

สมมติเรามีอาร์เรย์สองตัวเลขระบุช่วง เราต้องเขียนฟังก์ชันหา LCM ของพารามิเตอร์ที่ให้มา ที่หารลงตัวทั้งสองตัว และทุกตัวเลขระหว่างช่วงนั้น

ช่วงจะเป็นอาร์เรย์สองตัวเลข ไม่จำเป็นต้องเรียงลำดับ

ตัวอย่าง: ถ้าให้ [1, 3] ต้องหา LCM ของ 1 และ 3 ที่หารลงตัวด้วยทุกตัวระหว่าง 1-3 คำตอบคือ 6

ตัวอย่างโค้ด

const range = [1, 12];
const smallestCommon = (array = []) => {
  arr = array.slice().sort((a, b) => a - b);
  let result = [];
  for(let i = arr[0]; i <= arr[1]; i++){
    result.push(i);
  };
  let i = 1;
  let res;
  while(result.every(item=>res%item==0)==false){
    i++;
    res = arr[1]*i;
  }
  return res;
}
console.log(smallestCommon(range));

ผลลัพธ์

ผลลัพธ์ที่แสดงในคอนโซลจะเป็นดังนี้:

27720