Identification de nombres premiers en C++

C++Beginner
Pratiquer maintenant

Introduction

Dans ce laboratoire, nous allons apprendre à vérifier si un nombre donné est premier ou composé en C++. Un nombre premier est un nombre supérieur à 1 qui ne peut être divisé par aucun nombre autre que 1 et lui-même. Un nombre composé est un nombre supérieur à 1 qui peut être divisé par des nombres autres que 1 et lui-même.

Définir la fonction isPrime()

Nous allons définir une fonction isPrime(), qui prend un entier et renvoie une valeur booléenne représentant si l'entier est premier ou non.

#include <iostream>
#include <math.h>

using namespace std;

bool isPrime(int n)
{
    if (n == 1)
        return false; // 1 n'est pas un nombre premier

    for (int i = 2; i <= sqrt(n); i++)
    {
        if (n % i == 0)
            return false;
    }

    return true;
}

Dans le code ci-dessus, nous vérifions si le nombre donné est divisible par un quelconque nombre. Si aucun tel nombre n'existe, le nombre est premier. Si le nombre est 1, il n'est pas premier.

Écrire la fonction main()

Nous allons maintenant écrire la fonction main() qui prend une entrée de l'utilisateur et utilise la fonction isPrime() pour déterminer si le nombre donné est premier ou composé.

int main()
{
    cout << "\n\nWelcome to LabEx :-) \n\n\n";
    cout << " ===== Programme le plus efficace pour déterminer si le nombre entré est premier ou non. ===== \n\n";

    cout << " ===== Note: 1 n'est ni premier ni composé. ===== \n\n";

    int n;
    bool prime = false;

    cout << " Entrez un entier positif autre que 1 :  ";
    cin >> n;

    prime = isPrime(n);

    if (prime)
    {
        cout << "\n\nLe nombre entré " << n << " est un nombre premier.";
    }
    else
    {
        cout << "\n\nLe nombre entré " << n << " est un nombre composé.";
    }

    cout << "\n\n\n";

    return 0;
}

Compiler et exécuter le programme

Compilez le code en utilisant la commande g++ comme suit :

g++ main.cpp -o main

Ensuite, exécutez le programme en utilisant la commande ./main.

./main

Le programme vous invitera à entrer un entier positif autre que 1, entrez un nombre et appuyez sur Entrée.

Le programme affichera ensuite si le nombre entré est premier ou composé.

Code complet de main.cpp

#include <iostream>
#include <math.h>

using namespace std;

bool isPrime(int n)
{
    if (n == 1)
        return false; // 1 n'est pas un nombre premier

    for (int i = 2; i <= sqrt(n); i++)
    {
        if (n % i == 0)
            return false;
    }

    return true;
}

int main()
{
    cout << "\n\nWelcome to LabEx :-) \n\n\n";
    cout << " ===== Programme le plus efficace pour déterminer si le nombre entré est premier ou non. ===== \n\n";

    cout << " ===== Note: 1 n'est ni premier ni composé. ===== \n\n";

    int n;
    bool prime = false;

    cout << " Entrez un entier positif autre que 1 :  ";
    cin >> n;

    prime = isPrime(n);

    if (prime)
    {
        cout << "\n\nLe nombre entré " << n << " est un nombre premier.";
    }
    else
    {
        cout << "\n\nLe nombre entré " << n << " est un nombre composé.";
    }

    cout << "\n\n\n";

    return 0;
}

Résumé

Dans ce laboratoire, nous avons appris à vérifier si un nombre donné est premier ou composé en C++. Nous avons utilisé une fonction pour déterminer si le nombre donné était premier en fonction de son divisibilité par d'autres nombres que 1 et lui-même. Ensuite, nous avons utilisé cette fonction dans main() qui prenait une entrée de l'utilisateur et affichait si le nombre était premier ou composé.