以下为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)$。但是对于非常大的质数,这样的优化可能依然会花费很长的时间。因此,在实际应用中,可能需要更高效的算法来判断是否为质数。