Featured image of post Code C pour générer des nombres premiers

Code C pour générer des nombres premiers

Voici un code C simple qui génère des nombres premiers dans une plage spécifiée. Dans cet exemple, nous énumérons les nombres premiers de 1 à n.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <stdio.h>
#include <stdbool.h>

bool isPrime(int num) {
    if (num <= 1) return false;
    if (num <= 3) return true;
    if (num % 2 == 0 || num % 3 == 0) return false;
    
    for (int i = 5; i * i <= num; i += 6) {
        if (num % i == 0 || num % (i + 2) == 0) return false;
    }
    return true;
}

void printPrimes(int n) {
    printf("2 ");
    for (int i = 3; i <= n; i += 2) {
        if (isPrime(i)) {
            printf("%d ", i);
        }
    }
    printf("\n");
}

int main() {
    int n;
    printf("Veuillez entrer la valeur maximale de la plage pour générer des nombres premiers : ");
    scanf("%d", &n);
    printf("Les nombres premiers de 1 à %d sont les suivants :\n", n);
    printPrimes(n);
    return 0;
}

Ce code fonctionne de la manière suivante :

  1. Fonction isPrime : Détermine si un nombre donné est premier. Par souci d’efficacité, on vérifie d’abord s’il est divisible par 2 et 3, puis on procède à la vérification par multiples de 6.
  2. Fonction printPrimes : Produit les nombres premiers dans une plage spécifiée. Le 2 est affiché en premier, puis seuls les nombres impairs sont vérifiés.
  3. Fonction main : Demande à l’utilisateur de saisir la valeur maximale de la plage et affiche les nombres premiers dans cette plage.

Si vous compilez et exécutez ce code, les nombres premiers dans la plage spécifiée seront affichés.

comments powered by Disqus
Généré avec Hugo
Thème Stack conçu par Jimmy