素数を生成するエレガントな方法
この記事では、最もエレガントな方法で素数のリストを生成する方法を検討します。エレガントなアルゴリズムは、明確、簡潔、効率的である必要があります。
改良されたエラトステネスのふるい
ひとつの方法は、エラトステネスのふるいを改良することです。以下はエレガントな 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 以下の素数を効率的に特定し、精度と効率を保証します。
その他のエレガントなソリューション
改良されたふるい分け方法以外にも、次のような方法が考えられます。
効率、シンプルさ、読みやすさに対する特定のニーズと好みに基づいて、エレガントな素数生成アルゴリズムを構築するための最も適切なアプローチを選択してください。
以上が素数のリストを生成する最もエレガントな方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。