【发布时间】:2018-06-01 18:01:12
【问题描述】:
我编写了以下代码来生成一个素数数组,直到一个数字“num”。 但它给出了完全出乎意料的结果。 我尝试在 chrome 上对其进行调试,但调试器并没有太大帮助,因为它只是跳过了第 4 行。
function Sieve(num) {
var arr = Array.from({length:num-1}).map((x,i)=> i+2);
var numb = Math.floor(Math.sqrt(num));
var arra = Array.from({length:numb-1}).map((x,i)=> i+2);
arra.forEach(x => arr = arr.filter(y => ((y%x)!==0)||(y=!x)));
console.log(arr);
}
Sieve(10)
【问题讨论】:
-
numb和arra的目的是什么? -
@Hassan numb 用于生成arra
-
@Hassan arra 被使用,因为我们必须检查它的可分性,直到麻木而不是在那之后。看看这个en.wikipedia.org/wiki/Sieve_of_Eratosthenes
标签: javascript primes sieve-of-eratosthenes