我们需要编写一个 JavaScript 函数,它接受一个数字作为唯一的参数。
作为参数提供的数字保证是合数(具有两个以上因数的数字)。我们的函数应该找到能精确整除输入数的最大素数。
例如 -
如果参数是 72,那么输出应该是 3。
因为 3 是能整除 72 的最大素数
以下是代码 -
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