我正在尝试以n ^ 2的顺序实现筛分算法,但是我卡住了,我不为什么代码中的模块运算符返回true这是我的代码:
function sieve(val,prime=true)
{
var arr=[];
for(var i=val;i>1;i--)
{
prime=true;
for(var j=i-1;j>1;j--)
{
if((i%j)==0)
{
console.log(i%j)
prime=false;
break;
}
}
if(prime)
arr.push(i);
}
}
我认为您正在尝试在javascript中实现eratosthenes的筛选。您的代码缺少sieve算法中的一些基本规则,例如,您从最低编号上升到最大编号的sqrt。同样,您永远也不会返回结果。
您可以找到许多示例来说明如何在javascript中实现筛选。这里有一些例子: