如何在JavaScript中找到1-999之间的所有素数

How do I find all the prime numbers between 1-999 in JavaScript?

本文关键字:之间 1-999 JavaScript      更新时间:2023-09-26

以下是我迄今为止所做的工作:

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);
        }
    }
};

这根本没有给我所需要的,但我不太确定我做错了什么。我需要对素数做一些事情,但现在我的问题是得到素数本身。非常感谢。

你把一切都搞砸了。。。

  • 如果它是可除的,你说素数是真的,然后打印出素数是假的
  • i不需要上升到counter,到它的根就足够了
  • 您在哪里重置prime变量?(提示,你没有)

以下是几个寻找灵感的砂矿:

如何找到0-100之间的素数?

http://nullman.net/project/JavascriptPrimeNumbers.html

答案可以在这里找到。通过简单的谷歌搜索找到。

报价:

以下是JavaScript中sieve实现的示例:

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和100(含)。当然,由于内存限制,您不能使用这有很大的争论。

Java实现看起来非常相似。