这是我到目前为止所做的事情:
window.onload = function() {
var prime = false;
for (var counter = 0; counter < 1000; counter++) {
for (var i = 2; i <= counter; i++){
if (counter % i == 0 && i != counter){
prime = true;
}
}
if (prime == false){
document.write(counter);
}
}
};
这根本不能满足我的需要,但我不太清楚我做错了什么。我需要用素数来做一些事情,但现在我的问题是获得素数本身。谢谢。
答案 0 :(得分:0)
你搞砸了......
i
不需要升级到counter
,它的根就足够了。prime
变量? (提示,你没有)答案 1 :(得分:0)
这里有几个灵感来源:
答案 2 :(得分:0)
Answer can be found here。由simple Google search找到。
引用:
以下是JavaScript中筛选实现的示例:
function getPrimes(max) { var sieve = [], i, j, primes = []; for (i = 2; i <= max; ++i) { if (!sieve[i]) { // i has not been marked -- it is prime primes.push(i); for (j = i << 1; j <= max; j += i) { sieve[j] = true; } } } return primes; }
然后
getPrimes(100)
将返回2和2之间所有素数的数组 100(含)。当然,由于内存限制,您无法使用 这有很大的争论。Java实现看起来非常相似。