Program C na zobrazenie prvočísel medzi dvoma intervalmi

V tomto príklade sa naučíte tlačiť všetky prvočísla medzi dvoma číslami zadanými používateľom.

Aby ste pochopili tento príklad, mali by ste mať znalosti nasledujúcich tém programovania v jazyku C:

  • C ak … iné vyhlásenie
  • C pre slučku
  • C zlomiť a pokračovať

Zobraziť prvočísla medzi dvoma intervalmi

 #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; )

Výkon

 Zadajte dve čísla (intervaly): 20 50 Prvočísla medzi 20 a 50 sú: 23 29 31 37 41 43 47 

V tomto programe je whileslučka iterovaná ( high-low-1) krát.

V každej iterácii lowsa kontroluje , či je prvočíslo alebo nie, a hodnota lowsa zvyšuje o, 1kým lowsa rovná high.

Na tejto stránke nájdete ďalšie informácie o tom, ako skontrolovať, či je číslo prvočíslo alebo nie.

Ak používateľ najskôr zadá väčšie číslo, vyššie uvedený program nebude fungovať podľa očakávaní. Tento problém môžete vyriešiť zamenením čísel.

Zobraziť prvočísla pri prvom zadaní väčšieho čísla

 #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; )

Navštívte túto stránku a zistite, ako môžete zobraziť všetky prvočísla medzi dvoma intervalmi vytvorením používateľom definovanej funkcie

Zaujímavé články...