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
Barbara Streisandasal
2025-01-13 08:16:42276semak imbas

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>

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!

Kenyataan:
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