Maison > développement back-end > C++ > Quelle est la manière la plus élégante de générer une liste de nombres premiers ?

Quelle est la manière la plus élégante de générer une liste de nombres premiers ?

Barbara Streisand
Libérer: 2025-01-13 08:16:42
original
268 Les gens l'ont consulté

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

Une façon élégante de générer des nombres premiers

Cet article explore comment générer une liste de nombres premiers de la manière la plus élégante. Un algorithme élégant doit être clair, concis et efficace.

Tamis amélioré d'Eratosthène

Une méthode consiste à améliorer le tamis d'Eratosthène. Ce qui suit est une implémentation Java élégante :

<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>
Copier après la connexion

Cet algorithme identifie efficacement les nombres premiers inférieurs ou égaux à n en supprimant de manière itérative les multiples des nombres premiers trouvés, garantissant ainsi précision et efficacité.

Autres solutions élégantes

En plus de la méthode de tamisage améliorée, les méthodes suivantes peuvent également être envisagées :

  • Génération basée sur LINQ : Utilisez la fonction de chargement paresseux de LINQ pour générer avec élégance des séquences de nombres premiers. (Cette partie nécessite des exemples de code spécifiques pour être plus clair)
  • Méthode BigInteger : L'utilisation de la classe BigInteger de Java et de la méthode nextProbablePrime peut obtenir un code concis et efficace. (Cette partie nécessite des exemples de code spécifiques pour être plus claire)
  • Source de données de nombres premiers : Lisez directement à partir de fichiers ou de bases de données de nombres premiers pré-générés, de manière rapide et fiable.

Choisissez l'approche la plus appropriée pour créer des algorithmes élégants de génération de nombres premiers en fonction de vos besoins et préférences spécifiques en matière d'efficacité, de simplicité et de lisibilité.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal