gpt4 book ai didi

javascript - (Javascript) 给定区间内的质数 : for loop doesn't iterate

转载 作者:行者123 更新时间:2023-12-02 02:28:29 25 4
gpt4 key购买 nike

下面的代码是一个素数测试函数(如果是素数则返回 true,如果不是则返回 false)。我用它打印 5 到 20 之间的质数。

预期输出显然是5,7,11,13,17,19

for 循环似乎没有迭代,只是停留在 5。输出就好像脚本陷入了无限 while 循环中。

我不知道我做错了什么,也许if语句写得不正确?对于 JavaScript 还是有点陌生​​。

function is_prime(number){

if (number==2 || number==3){
return true;
}

if (number==0 || number==1 || number%2==0){
return false;
}

if ((number+1)%6!=0 && (number-1)%6!=0){
return false;
}

for(i=3; i-1<=parseInt(number)**.5; i+=2){

if (number%i==0){
return false;
}
}

return true;
}


for(i=5;i<=20;i++){

if(is_prime(i)){

console.log(i)
}
}

最佳答案

您已在 for() 循环中创建了一个名为 i 的全局变量 - 然后您在函数中更改了同一变量。

两种情况中都使用let i

关于javascript - (Javascript) 给定区间内的质数 : for loop doesn't iterate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65364037/

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