Chúng ta cần viết một hàm JavaScript nhận vào một số làm đối số duy nhất. Số được đảm bảo là hợp số (có nhiều hơn 2 ước). Hàm tìm số nguyên tố lớn nhất chia hết cho số đầu vào.
Ví dụ - Nếu tham số là 72, đầu ra là 3 (vì 3 là số nguyên tố lớn nhất chia hết 72).
Ví dụ
Code sau đây:
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));Kết quả
Kết quả trên console:
3