Cara yang elegan untuk menjana nombor perdana
Artikel ini meneroka cara menjana senarai nombor perdana dengan cara yang paling elegan. Algoritma yang elegan harus jelas, ringkas dan cekap.
Ayak Eratosthenes yang Diperbaiki
Salah satu kaedah ialah menambah baik penapis Eratosthenes. Berikut ialah pelaksanaan Java yang elegan:
<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>
Algoritma ini dengan cekap mengenal pasti nombor perdana yang kurang daripada atau sama dengan n dengan mengalih keluar gandaan nombor perdana yang ditemui secara berulang, memastikan ketepatan dan kecekapan.
Penyelesaian elegan lain
Selain kaedah penyaringan yang lebih baik, kaedah berikut juga boleh dipertimbangkan:
Pilih pendekatan yang paling sesuai untuk membina algoritma penjanaan nombor perdana yang elegan berdasarkan keperluan dan keutamaan khusus anda untuk kecekapan, kesederhanaan dan kebolehbacaan.
Atas ialah kandungan terperinci Apakah Cara Paling Elegan untuk Menjana Senarai Nombor Perdana?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!