Maison  >  Article  >  développement back-end  >  Programme C pour vérifier si un nombre est premier

Programme C pour vérifier si un nombre est premier

PHPz
PHPzavant
2023-08-26 16:49:081360parcourir

Programme C pour vérifier si un nombre est premier

Un nombre premier est un nombre qui ne peut être divisé que par la somme de deux nombres eux-mêmes. Un facteur d'un nombre est un nombre qui divise le nombre.

La liste des dix premiers nombres premiers est 2,3,5,7,11,13,17,23,29,31.

Les nombres non premiers sont des nombres composés. Un nombre composé est un nombre divisible par deux nombres ou plus.

S'il s'agit d'un nombre premier et d'un nombre composé, alors 1 n'est ni premier ni composé car il n'est divisible que par lui-même.

Comment vérifier si un nombre est premier ou composé Pour vérifier si un nombre est premier, deux conditions doivent être vérifiées

1) Il doit s'agir d'un nombre entier supérieur à 1.

2) Il ne devrait y avoir que deux facteurs, un et le nombre lui-même.

Si ces deux conditions sont remplies, alors on peut dire qu'un nombre est premier.

Dans notre programme, nous vérifierons ce nombre divisé par chaque nombre inférieur à ce nombre. Un nombre n'est pas premier si un nombre inférieur à un nombre donné est divisible par ce nombre. Sinon, c'est premier.

Prenons deux nombres comme exemple et utilisons ce processus pour vérifier s'ils sont des nombres premiers.

Input − Number1 − 42
Output − 42 is not a prime number

Logique - Nous divisons 42 par chaque nombre supérieur à 1 et inférieur à 42. Par conséquent,

42/2 = 21 c'est-à-dire que 42 est divisible par 2, ce qui signifie que 42 n'est pas un nombre premier car il est divisible par un autre nombre.

Input − Number2 − 7
Output − 7 is a prime number

Logique - Nous diviserons 7 par chaque nombre supérieur à 1 et inférieur à 7. Donc,

7 n'est pas divisible par 2 donc le code vérifiera le numéro suivant, c'est-à-dire 3

7 n'est pas divisible par 3 donc le code vérifiera le numéro suivant, c'est-à-dire 4

7 n'est pas divisible par 4 donc le code check Le nombre suivant, c'est-à-dire 5

>

7, n'est pas divisible par 5 donc le code vérifiera que le nombre suivant, c'est-à-dire 6

7, n'est pas divisible par 6, ce qui signifie que 7 ne peut être divisible que par 1 et 7 signifie que 7 est premier nombre .

Regardez la logique ci-dessus, ce nombre est-il 1 000 plus ou 100 000 plus, alors le programme itérera plusieurs fois dans la boucle for et cette méthode prendra beaucoup de temps de calcul. Par conséquent, afin de réduire le nombre d’itérations, il faut utiliser de meilleures méthodes.

La solution optimisée consiste à exécuter seulement la moitié de la boucle. Cela signifie que si le nombre est 77, la boucle ne fonctionnera que jusqu'à 38. Cela réduira le nombre d'itérations requises, nous utiliserons donc cet algorithme pour créer le programme.

Exemple

#include <stdio.h>
int main() {
   int num = 33, flag = 0;
   for(int i=2 ; i < num/2 ; i++) {
      if(num%i == 0) {
         printf("%d is not a prime number", num);
         flag = 1;
         break;
      }
   }
   if(flag == 0) {
      printf("%d is a prime number", num);
   }
}

Sortie

33 is a prime number

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer