ฟังก์ชันนี้คืนจำนวนเฉพาะ (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