Dans cet exemple, vous apprendrez à imprimer tous les nombres premiers entre deux nombres entrés par l'utilisateur.
Pour comprendre cet exemple, vous devez avoir la connaissance des sujets de programmation C suivants:
- C if… else Déclaration
- C pour boucle
- C pause et continuer
Afficher les nombres premiers entre deux intervalles
#include int main() ( int low, high, i, flag; printf("Enter two numbers(intervals): "); scanf("%d %d", &low, &high); printf("Prime numbers between %d and %d are: ", low, high); // iteration until low is not equal to high while (low < high) ( flag = 0; // ignore numbers less than 2 if (low <= 1) ( ++low; continue; ) // if low is a non-prime number, flag will be 1 for (i = 2; i <= low / 2; ++i) ( if (low % i == 0) ( flag = 1; break; ) ) if (flag == 0) printf("%d ", low); // to check prime for the next number // increase low by 1 ++low; ) return 0; )
Production
Entrez deux nombres (intervalles): 20 50 Les nombres premiers entre 20 et 50 sont: 23 29 31 37 41 43 47
Dans ce programme, la while
boucle est répétée ( high-low-1
) fois.
Dans chaque itération, si low
c'est un nombre premier ou non est vérifié, et la valeur de low
est incrémentée de 1
jusqu'à ce qu'elle low
soit égale à high
.
Visitez cette page pour en savoir plus sur la façon de vérifier si un nombre est premier ou non.
Si l'utilisateur entre d'abord le plus grand nombre, le programme ci-dessus ne fonctionne pas comme prévu. Vous pouvez résoudre ce problème en échangeant les chiffres.
Afficher les nombres premiers lorsque le plus grand nombre est entré en premier
#include int main() ( int low, high, i, flag, temp; printf("Enter two numbers(intervals): "); scanf("%d %d", &low, &high); // swap numbers if low is greather than high if (low> high) ( temp = low; low = high; high = temp; ) printf("Prime numbers between %d and %d are: ", low, high); while (low < high) ( flag = 0; // ignore numbers less than 2 if (low <= 1) ( ++low; continue; ) for (i = 2; i <= low / 2; ++i) ( if (low % i == 0) ( flag = 1; break; ) ) if (flag == 0) printf("%d ", low); ++low; ) return 0; )
Visitez cette page pour savoir comment afficher tous les nombres premiers entre les deux intervalles en créant une fonction définie par l'utilisateur