JavaScript で数値が素数かどうかを効率的に判断するにはどうすればよいでしょうか?

Barbara Streisand
リリース: 2024-10-26 17:57:03
オリジナル
946 人が閲覧しました

How can you efficiently determine if a number is prime in 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!