首页 >web前端 >js教程 >如何在 JavaScript 中使用埃拉托斯特尼筛法查找 0 到 100 之间的所有素数?

如何在 JavaScript 中使用埃拉托斯特尼筛法查找 0 到 100 之间的所有素数?

Barbara Streisand
Barbara Streisand原创
2024-11-03 00:58:02392浏览

How to Find All Prime Numbers Between 0 and 100 Using the Sieve of Eratosthenes in JavaScript?

JavaScript 中 0 到 100 之间的素数识别

在 JavaScript 领域,识别给定范围内的素数是一项计算挑战。对于那些不熟悉素数的人来说,它们是只能被 1 和自身整除的正整数。

查找素数的一种方法是使用埃拉托斯特尼筛法算法。此方法首先创建一个从 0 到所需上限的整数数组,在本例中为 100。随后,与非素数对应的数组元素被标记为复合元素。

该算法通过设置索引 1 到 0 处的元素,表明 1 不是质数。然后继续迭代数组,将每个素数的所有倍数标记为非素数。例如,如果当前素数是 2,则 2 的所有倍数(2 本身除外)都被标记为合数。这个过程一直持续下去,直到处理完上限平方根为止的所有素数。

这是埃拉托斯特尼筛法算法的 JavaScript 实现:

<code class="js">function getPrimes(max) {
    var sieve = [], i, j, primes = [];
    for (i = 2; i <= max; ++i) {
        if (!sieve[i]) {
            primes.push(i);
            for (j = i << 1; j <= max; j += i) {
                sieve[j] = true;
            }
        }
    }
    return primes;
}

console.log(getPrimes(100));</code>

运行此函数将生成包含 2 到 100(含)之间的所有素数的数组。该方法使用综合方法有效地确定指定范围内的素数。

以上是如何在 JavaScript 中使用埃拉托斯特尼筛法查找 0 到 100 之间的所有素数?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn