Programme C ++ pour vérifier si un nombre est premier ou non

Exemple pour vérifier si un entier (saisi par l'utilisateur) est un nombre premier ou non en utilisant la boucle for et if… else.

Pour comprendre cet exemple, vous devez avoir la connaissance des rubriques de programmation C ++ suivantes:

  • C ++ if, if… else et Nested if… else
  • C ++ pour Loop
  • Instruction C ++ break and continue

Un entier positif qui n'est divisible que par 1 et est lui-même appelé nombre premier.

Par exemple: 13 est un nombre premier car il n'est divisible que par 1 et 13 mais 15 n'est pas un nombre premier car il est divisible par 1, 3, 5 et 15.

Remarque: 0 et 1 ne sont pas des nombres premiers.

Exemple: vérifier le nombre premier

 #include using namespace std; int main() ( int i, n; bool isPrime = true; cout <> n; // 0 and 1 are not prime numbers if (n == 0 || n == 1) ( isPrime = false; ) else ( for (i = 2; i <= n / 2; ++i) ( if (n % i == 0) ( isPrime = false; break; ) ) ) if (isPrime) cout << n << " is a prime number"; else cout << n << " is not a prime number"; return 0; ) 

Production

 Entrez un entier positif: 29 29 est un nombre premier.

Ce programme prend un entier positif de l'utilisateur et le stocke dans la variable n.

Notez que la variable booléenne isPrime est initialisée trueau début du programme.

Puisque 0 et 1 ne sont pas des nombres premiers, nous vérifions d'abord si le nombre d'entrée est l'un de ces nombres ou non. Si le nombre d'entrée est 0 ou 1 , la valeur de isPrime est définie sur false.

Sinon, la valeur initiale de isPrime reste inchangée et la forboucle est exécutée, ce qui vérifie si le nombre saisi par l'utilisateur est parfaitement divisible par i ou non.

 for (i = 2; i <= n / 2; ++i) ( if (n % i == 0) ( isPrime = false; break; ) ) 

La forboucle va de i == 2à i <= n / 2et augmente la valeur de i de 1 à chaque itération.

La boucle se termine à i == n / 2parce que nous ne pouvons trouver aucun facteur pour n au-delà du nombre n / 2 . Ainsi, toute itération au n / 2- delà est redondante.

Si le nombre entré par l'utilisateur est parfaitement divisible par i, alors isPrime est mis à falseet le nombre ne sera pas un nombre premier.

Mais si le nombre d'entrée n'est pas parfaitement divisible par i sur l'ensemble de la boucle, cela signifie que le nombre d'entrée n'est divisible que par 1 et ce nombre lui-même.

Donc, le nombre donné est un nombre premier.

Dans le cas de n == 2, la forboucle ne s'exécute pas et la valeur de isPrime reste true.

Articles intéressants...