Ebben a példában megtanulja nyomtatni az összes prímszámot a felhasználó által beírt két szám között.
A példa megértéséhez ismernie kell a következő C programozási témákat:
- C ha … más nyilatkozat
- C a hurok számára
- C törés és folytatás
Jelenítse meg a prímszámokat két intervallum között
#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; )
Kimenet
Írjon be két számot (intervallumokat): 20 50 A 20 és 50 közötti prímszámok a következők: 23 29 31 37 41 43 47
Ebben a programban a while
ciklus ismétlődik ( high-low-1
) alkalommal.
Mindegyik iterációban be low
van jelölve , hogy prímszám- e vagy sem, és a értékét addig low
növeljük, 1
amíg meg low
nem egyezik high
.
Látogasson el erre az oldalra, ha többet szeretne megtudni arról, hogyan ellenőrizhető, hogy egy szám elsődleges-e vagy sem.
Ha a felhasználó először beírja a nagyobb számot, akkor a fenti program nem a kívánt módon működik. A számok felcserélésével megoldhatja ezt a problémát.
A fő számok megjelenítése, ha először nagyobb számot ad meg
#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; )
Erről az oldalról megtudhatja, hogyan jelenítheti meg a két intervallum közötti összes prímszámot egy felhasználó által definiált függvény létrehozásával