以下为ChatGPT自动生成的解答,正确与否请自行判断。
BFE.devAI解答 - JavaScript 代码题
120. 实现`isPrime()`
function isPrime(num) {
if (num < 2) {
return false;
}
for (let i = 2; i <= Math.sqrt(num); i++) {
if (num % i === 0) {
return false;
}
}
return true;
}
代码时间代价为$O(\sqrt{n})$。其中$n$为传入的自然数。可以通过优化循环来降低时间代价,例如从2开始循环到传入自然数的一半即可,因为自然数的一半也就是其最大的约数。这样时间代价为$O(\frac{n}{2})=O(n)$。但是对于非常大的质数,这样的优化可能依然会花费很长的时间。因此,在实际应用中,可能需要更高效的算法来判断是否为质数。