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

การหาจำนวนเฉพาะแรกที่มากกว่าตัวเลขที่กำหนด - JavaScript

ฟังก์ชันนี้คืนจำนวนเฉพาะ (prime) ตัวแรกที่มากกว่าตัวเลขที่รับเข้ามา

ตัวอย่าง

// Input: 24
// Output: 29

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

const num = 24;

const isPrime = n => {
  if (n === 1) return false;
  if (n === 2) return true;
  for (let x = 2; x < n; x++) {
    if (n % x === 0) return false;
  }
  return true;
};

const nearestPrime = num => {
  while (!isPrime(++num)) {}
  return num;
};

console.log(nearestPrime(24));

การทำงาน

  • ++num เพิ่มค่าก่อนตรวจสอบ (pre-increment)
  • while (!isPrime(...)) {} วนจนกว่าจะเจอจำนวนเฉพาะ
  • คืนค่าจำนวนเฉพาะที่เจอ

การปรับปรุงประสิทธิภาพ

const isPrimeOptimized = n => {
  if (n <= 1) return false;
  if (n <= 3) return true;
  if (n % 2 === 0 || n % 3 === 0) return false;
  for (let i = 5; i * i <= n; i += 6) {
    if (n % i === 0 || n % (i + 2) === 0) return false;
  }
  return true;
};

ผลลัพธ์

29