Programme C pour afficher les nombres premiers entre deux intervalles

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 whileboucle est répétée ( high-low-1) fois.

Dans chaque itération, si lowc'est un nombre premier ou non est vérifié, et la valeur de lowest incrémentée de 1jusqu'à ce qu'elle lowsoit é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

Articles intéressants...