ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript で範囲内の素数を効率的に見つけるにはどうすればよいですか?

JavaScript で範囲内の素数を効率的に見つけるにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-30 22:49:30357ブラウズ

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

範囲内の素数を効率的に見つける

JavaScript では、指定された範囲内の素数をさまざまな方法で識別できます。一般的に使用されるアプローチの 1 つは、エラトステネスのふるいアルゴリズムです。この手法は、素数の倍数を非素数としてマークし、素数の効率的な識別を可能にします。

以下は、0 ~ 100 の範囲内の素数を見つけるための、修正されたエラトステネスのふるいアルゴリズムの 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;
}

この関数では、「sieve」という名前の配列を使用して、非素数としてマークされた数値を追跡します。 2 から指定された最大値までの数値を反復処理すると、マークのない数値は素数とみなされ、'primes' 配列に追加されます。その後、素数の倍数は 'sieve' 配列内で非素数としてマークされます。

この関数を利用すると、指定された範囲内のすべての素数を効率的に取得できます。たとえば、getPrimes(100) は、2 から 100 (両端を含む) までのすべての素数の配列を返します。

以上がJavaScript で範囲内の素数を効率的に見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。