Rumah > pembangunan bahagian belakang > C++ > Apakah Cara Paling Elegan untuk Menjana Senarai Nombor Perdana?

Apakah Cara Paling Elegan untuk Menjana Senarai Nombor Perdana?

Barbara Streisand
Lepaskan: 2025-01-13 08:16:42
asal
269 orang telah melayarinya

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

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>
Salin selepas log masuk

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:

  • Penjanaan berasaskan LINQ: Gunakan ciri pemuatan malas LINQ untuk menjana jujukan nombor perdana secara elegan. (Bahagian ini memerlukan contoh kod khusus untuk lebih jelas)
  • Kaedah BigInteger: Menggunakan kelas BigInteger Java dan kaedah nextProbablePrime boleh mencapai kod yang ringkas dan cekap. (Bahagian ini memerlukan contoh kod khusus untuk lebih jelas)
  • Sumber data nombor perdana: Baca terus daripada fail atau pangkalan data nombor perdana pra-jana, pantas dan boleh dipercayai.

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan