ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript で数値が素数かどうかを効率的に判断するにはどうすればよいでしょうか?
JavaScript での素数の効率的な検証
コンピューター プログラミングでは、指定された数値が素数かどうかを判断することが基本的なタスクです。素数は、1 より大きい正の整数で、1 とそれ自体以外に正の約数はありません。
素数かどうかをチェックする一般的なアプローチには、エラトステネスのふるいが含まれます。ただし、パフォーマンスを考慮して、次の JavaScript 実装に示すように、より効率的な方法を使用できます。
let inputValue = 7; let isPrime = inputValue == 1 ? false : true; // Because 1 is not prime for (let i = 2; i < inputValue; i++) { inputValue % i == 0 ? isPrime *= false : isPrime *= true; } alert(`${inputValue} is ${isPrime ? 'prime' : 'not prime'} number`);
時間と空間の複雑さの分析
時間上記のアルゴリズムの複雑さは O(sqrt(n)) です。ここで、n は入力値を表します。これは、ループが入力数値の平方根までのすべての整数を反復処理するためです。これは、n までのすべての整数をチェックするよりも大幅な最適化です。
空間計算量は O(1) は、プリミティブ変数を超える追加のデータ構造を必要としないためです。
代替アプローチ
JavaScript で素数性をチェックするための代替構文は次のとおりです。
const isPrime = num => { for (let i = 2, s = Math.sqrt(num); i <= s; i++) { if (num % i === 0) return false; } return num > 1; }
このアプローチは、より簡潔なアロー関数構文を利用しながら、前のアプローチと同じ時間と空間の複雑さを実現します。
以上がJavaScript で数値が素数かどうかを効率的に判断するにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。