ホームページ >ウェブフロントエンド >jsチュートリアル >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 サイトの他の関連記事を参照してください。