gpt4 book ai didi

Javascript素数检查

转载 作者:行者123 更新时间:2023-12-03 09:46:11 25 4
gpt4 key购买 nike

长期以来,我一直试图通过挑战,尽管在线阅读了多种解决方案和建议,但我似乎无法正确应用它。

指令是“定义一个函数 isPrime,它接受一个整数参数并根据整数是否为素数返回真或假。”

我已经尝试了很多东西,但这是我能得到的最远的:

function isPrime(num) {
if (num <= 1) return false;
if (num === 2) return true;

for (var i = 2; i < num; i++)
if (num % i === 0) return false;
else return true;
}

但后来有人告诉我:“9 不是质数。”

任何帮助将不胜感激,谢谢!

最佳答案

您应该避免 else 情况,并且仅在 for 循环完成后才返回。虽然可以通过将条件更新为 i <= Math.sqrt(num) 来减少 for 循环计数(如 @PatrickRoberts 建议)。

function isPrime(num) {
if (num <= 1) return false;
if (num === 2) return true;

// storing the calculated value would be much
// better than calculating in each iteration
var sqrt = Math.sqrt(num);

for (var i = 2; i <= sqrt; i++)
if (num % i === 0) return false;
return true;
}

仅供引用:在循环第一次迭代的代码中 num % i === 0 ( 9 % 2 ) 将是 false它会返回 else 语句( true)。

关于Javascript素数检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38643817/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com