English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

tutoriel de base du langage C

contrôle du flux du langage C

Fonctions en C

Tableaux en C

Pointeurs en C

Chains de caractères en C

structures du langage C

fichiers du langage C

Autres

manuel de référence du langage C

programme C affichant tous les nombres premiers entre deux nombres

Recueil complet d'exemples de programmation en C

dans cet exemple, vous apprendrez à imprimer tous les nombres premiers entre les deux nombres saisis par l'utilisateur.

pour comprendre cet exemple, vous devriez comprendre les éléments suivantsprogrammation en CSujet :

afficher les nombres premiers entre deux intervalles

#include <stdio.h>
int main() {
   int bas, haut, i, flag;
   printf("Entrez deux nombres (espacés) : ");
   scanf("%d %d", &bas, &haut);
   printf("%d et %d entre eux sont les nombres premiers: ", bas, haut);
   //itérer jusqu'à ce que bas ne soit pas égal à haut
   while (bas < haut) {
      flag = 0;
      // ignorer les nombres inférieurs à2du nombre
      si (bas <= 1) {
         ++low;
         continue;
      }
      //si bas n'est pas un nombre premier, alors flag est1
      for (i = 2; i <= bas / 2; ++i) {
         si (bas bas % i == 0) {
            flag = 1;
            break;
         }
      }
      si (flag == 0) {
          printf("%d ", low);
      }
         
      ++low;
   }
   return 0;
}

résultat de la sortie

entrez deux nombres (espacés) : 20 
50
2et5entre 0 et 23 29 31 37 41 43 47

dans ce programme, la boucle while est itérée (haut-bas-1fois.

à chaque itération, vérifier si bas est un nombre premier, augmenter la valeur de bas1jusqu'à ce que bas soit égal à haut.

visiter cette page pour en savoir plus sur la manière devérifier si un nombre est un nombre premierplus d'informations.

si le plus grand nombre est entré en premier par l'utilisateur, le programme ci-dessus ne fonctionnera pas correctement. Vous pouvezéchanger les nombrespour résoudre ce problème.

afficher les nombres premiers lorsque le plus grand nombre est entré en premier

#include <stdio.h>
int main() {
   int bas, haut, i, flag, temp;
   printf("Entrez deux nombres (espacés) : ");
   scanf("%d %d", &bas, &haut);
   //échanger les nombres si bas est supérieur à haut
   si (bas > haut) {
      temp = bas;
      bas = haut;
      haut = temp;
   }
   printf("%d et %d entre eux sont les nombres premiers: ", bas, haut);
   while (bas < haut) {
      flag = 0;
      //ignorer les nombres inférieurs à2du nombre
      si (bas <= 1) {
         ++low;
         continue;
      }
      for (i = 2; i <= bas / 2; ++i) {
         si (bas bas % i == 0) {
            flag = 1;
            break;
         }
      }
      if (flag == 0)
         printf("%d ", low);
      ++low;
   }
   return 0;
}

Visitez cette page pour savoir commentEn créant des fonctions utilisateur définiesViensAfficher tous les nombres premiers entre deux intervalles de temps

Recueil complet d'exemples de programmation en C