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

การหาตัวเลขสมบูรณ์ใน JavaScript


ภาพรวม

ตัวเลขสมบูรณ์ (Perfect number) คือจำนวนเต็มบวกที่เท่ากับผลรวมของตัวหารบวกของมัน ไม่นับตัวมันเอง ตัวหารของจำนวนเต็ม x คือจำนวนเต็มที่หาร x ลงตัว

ตัวอย่าง

28 เป็นตัวเลขสมบูรณ์ เพราะ 28 = 1 + 2 + 4 + 7 + 14

เราต้องเขียนฟังก์ชันที่รับตัวเลข n และตรวจสอบว่าเป็นตัวเลขสมบูรณ์หรือไม่

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

const num = 28;

const checkPerfectNumber = (num = 1) => {
  if(num === 1) {
    return false;
  }
  let sum = 1;
  for(let i = 2; i <= Math.floor(Math.sqrt(num)); i++) {
    if(num % i === 0) {
      sum = sum + i + num / i;
      if(sum > num) {
        return false;
      }
    }
  }
  return sum === num;
};

console.log(checkPerfectNumber(num));

ผลลัพธ์ในคอนโซล

true