เราต้องเขียนฟังก์ชันที่รับตัวเลขประกอบ (composite number) หาตัวประกอบเฉพาะที่ใหญ่ที่สุดที่หารลงตัว
ตัวอย่าง: 72 → ตัวประกอบเฉพาะที่ใหญ่ที่สุดคือ 3
ตัวอย่างโค้ด
const num = 72;
const largestPrimeFactor = (num) => {
let res = Math.ceil(Math.sqrt(num));
const isPrime = (num) => {
let i, limit = Math.ceil(Math.sqrt(num));
for (i = 3; i <= limit; i += 2) { if (num % i === 0) { return false; } }
return true;
};
res = (res & 1) === 0 ? res - 1 : res;
while (!(num % res === 0 && isPrime(res))) { res -= 2; }
return res;
};
console.log(largestPrimeFactor(num));
ผลลัพธ์
ค่าที่แสดงในคอนโซลจะเป็นดังนี้:
3