首页 >web前端 >js教程 >如何在 JavaScript 中高效查找某个范围内的素数?

如何在 JavaScript 中高效查找某个范围内的素数?

Patricia Arquette
Patricia Arquette原创
2024-10-30 22:49:30368浏览

How to Efficiently Find Prime Numbers Within a Range in JavaScript?

高效查找某个范围内的素数

在 JavaScript 中,识别指定范围内的素数可以通过多种方法实现。一种常用的方法是埃拉托斯特尼筛法算法。该技术将素数的倍数标记为非素数,从而可以有效识别素数。

以下是改进的埃拉托色尼筛法算法的 JavaScript 实现,用于查找 0 到 100 范围内的素数:

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

在此函数中,名为“sieve”的数组用于跟踪标记为非素数的数字。从 2 到指定的最大值迭代数字,未标记的数字被视为素数并添加到 'primes' 数组中。随后,多个素数在“sieve”数组中被标记为非素数。

通过使用此函数,您可以高效地检索指定范围内的所有素数。例如,getPrimes(100) 将返回 2 到 100(含)之间所有素数的数组。

以上是如何在 JavaScript 中高效查找某个范围内的素数?的详细内容。更多信息请关注PHP中文网其他相关文章!

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