ホームページ > バックエンド開発 > C++ > 素数のリストを生成する最もエレガントな方法は何ですか?

素数のリストを生成する最もエレガントな方法は何ですか?

Barbara Streisand
リリース: 2025-01-13 08:16:42
オリジナル
269 人が閲覧しました

What's the Most Elegant Way to Generate a List of Prime Numbers?

素数を生成するエレガントな方法

この記事では、最もエレガントな方法で素数のリストを生成する方法を検討します。エレガントなアルゴリズムは、明確、簡潔、効率的である必要があります。

改良されたエラトステネスのふるい

ひとつの方法は、エラトステネスのふるいを改良することです。以下はエレガントな Java 実装です:

<code class="language-java">public static ArrayList<Integer> generatePrimes(int n) {
    ArrayList<Integer> primes = new ArrayList<>();
    boolean[] isPrime = new boolean[n + 1];
    Arrays.fill(isPrime, true);

    isPrime[0] = isPrime[1] = false;
    for (int i = 2; i * i <= n; i++) {
        if (isPrime[i]) {
            for (int j = i * i; j <= n; j += i) {
                isPrime[j] = false;
            }
        }
    }

    for (int i = 2; i <= n; i++) {
        if (isPrime[i]) {
            primes.add(i);
        }
    }
    return primes;
}</code>
ログイン後にコピー

このアルゴリズムは、見つかった素数の倍数を繰り返し削除することで n 以下の素数を効率的に特定し、精度と効率を保証します。

その他のエレガントなソリューション

改良されたふるい分け方法以外にも、次のような方法が考えられます。

  • LINQ ベースの生成: LINQ の遅延読み込み機能を使用して、素数シーケンスをエレガントに生成します。 (この部分を明確にするためには、具体的なコード例が必要です)
  • BigInteger メソッド: Java の BigInteger クラスと nextProbablePrime メソッドを使用すると、簡潔で効率的なコードを実現できます。 (この部分を明確にするためには、具体的なコード例が必要です)
  • 素数データ ソース: 事前に生成された素数ファイルまたはデータベースから直接読み取り、高速かつ信頼性が高くなります。

効率、シンプルさ、読みやすさに対する特定のニーズと好みに基づいて、エレガントな素数生成アルゴリズムを構築するための最も適切なアプローチを選択してください。

以上が素数のリストを生成する最もエレガントな方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート