Primorial ของ n คือผลคูณของจำนวนเฉพาะ n ตัวแรก (n# = 2 × 3 × 5 × 7 × ...)
ตัวอย่าง
n = 4 2 × 3 × 5 × 7 = 210
ตัวอย่างโค้ด
const num = 4;
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 primorial = num => {
if (num === 0) return 0;
let count = 1, flag = 3;
let prod = 2; // เริ่มจากจำนวนเฉพาะตัวแรก (2)
while (count < num) {
if (isPrime(flag)) {
prod *= flag;
count++;
}
flag++;
}
return prod;
};
console.log(primorial(num));
การทำงาน
- เริ่มจาก 2 (จำนวนเฉพาะตัวแรก)
- ตรวจสอบเลขคี่ตั้งแต่ 3 ขึ้นไปว่เป็นจำนวนเฉพาะหรือไม่
- คูณสะสมจนครบ n ตัว
ผลลัพธ์
210
ลำดับ Primorial: 2, 6, 30, 210, 2310, 30030, 510510, ...