ホームページ >ウェブフロントエンド >フロントエンドQ&A >JavaScriptで100以内の素数を見つける方法

JavaScriptで100以内の素数を見つける方法

PHPz
PHPzオリジナル
2023-04-24 10:47:401506ブラウズ

JavaScript は、さまざまな問題を解決するための非常に強力な機能を提供する、一般的に使用されるプログラミング言語です。この記事では、JavaScript を使用して 100 までの素数を見つける方法を説明します。

素数とは、1 とそれ自体を除く他の自然数で割り切れない 1 より大きい自然数を指します。コンピューター サイエンスでは、素数は暗号化や暗号化などの分野で非常に重要な役割を果たすため、素数を解くことは非常に一般的な問題です。数値が素数かどうかをテストする最も簡単な方法の 1 つは、試算による除算です。試算の基本的な考え方は、検出する数値 n ごとに、n を 2 から n-1 までのすべての数値で割ってみます。n が割り切れない場合、n は素数になります。

このアルゴリズムを JavaScript で実装するコードは次のとおりです:

//定义一个函数来检测一个数是否为素数
function isPrime(num) {
  //1和0不是素数
  if (num <= 1) {
    return false;
  }
  //2是素数
  if (num === 2) {
    return true;
  }
  //大于2的偶数不是素数
  if (num % 2 === 0) {
    return false;
  }
  //尝试从3到num-1之间的奇数去整除num
  for (let i = 3; i < num; i += 2) {
    if (num % i === 0) {
      return false;
    }
  }
  //如果都无法整除,那么num就是素数
  return true;
}

//测试函数
for (let i = 1; i <= 100; i++) {
  if (isPrime(i)) {
    console.log(i + "是素数");
  } else {
    console.log(i + "不是素数");
  }
}

上記のコードでは、まず数値が素数かどうかを検出する isPrime 関数を定義します。その具体的な実装プロセスは次のとおりです。

  1. num が 1 以下の場合、num は素数ではないため、false が返されます。
  2. num が 2 に等しい場合、num は素数であり、true を返します。
  3. num が 2 より大きい偶数の場合、num は素数ではないため、false を返します。
  4. num を 3 から num-1 までの奇数で割ってみて、割り切れない場合は num が素数なので true を返します。
  5. 上記の条件がいずれも満たされない場合、num は素数ではないため、false が返されます。

次に、ループを使用して、1 から 100 までの各数値が素数であるかどうかをテストします。素数である場合はその数値を出力し、素数でない場合は出力は素数ではありません。

ここではすべての出力結果を示しませんが、実行結果はすべて正しいです。

実際の開発では、100 より大きい数値が素数かどうかを判断する必要がある場合があります。この場合、2からnum-1までの値の数が非常に多いため、試行除算を使用すると非常に時間がかかります。したがって、数値が素数かどうかを判断するには、より効率的なアルゴリズムを使用する必要があります。一般的に使用されるアルゴリズムの 1 つは、O(nloglogn) の時間計算量で 1 から n までのすべての素数を見つけることができる「エールリッヒふるい法」です。ただし、この記事では、トライアル分割について簡単に紹介および実装するだけです。

以上がJavaScriptで100以内の素数を見つける方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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