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 while
slučka iterovaná ( high-low-1
) krát.
V každej iterácii low
sa kontroluje , či je prvočíslo alebo nie, a hodnota low
sa zvyšuje o, 1
kým low
sa 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