In diesem Beispiel lernen Sie, alle Primzahlen zwischen zwei vom Benutzer eingegebenen Zahlen zu drucken.
Um dieses Beispiel zu verstehen, sollten Sie die folgenden C-Programmierthemen kennen:
- C if… else Statement
- C für Schleife
- C brechen und fortfahren
Primzahlen zwischen zwei Intervallen anzeigen
#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; )
Ausgabe
Geben Sie zwei Zahlen (Intervalle) ein: 20 50 Primzahlen zwischen 20 und 50 sind: 23 29 31 37 41 43 47
In diesem Programm wird die while
Schleife ( high-low-1
) mal wiederholt .
In jeder Iteration low
wird geprüft , ob es sich um eine Primzahl handelt oder nicht, und der Wert von low
wird um erhöht, 1
bis low
gleich gleich ist high
.
Besuchen Sie diese Seite, um mehr darüber zu erfahren, wie Sie überprüfen können, ob eine Zahl eine Primzahl ist oder nicht.
Wenn der Benutzer zuerst die größere Zahl eingibt, funktioniert das obige Programm nicht wie beabsichtigt. Sie können dieses Problem lösen, indem Sie die Zahlen austauschen.
Primzahlen anzeigen, wenn zuerst eine größere Zahl eingegeben wird
#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; )
Besuchen Sie diese Seite, um zu erfahren, wie Sie alle Primzahlen zwischen den beiden Intervallen anzeigen können, indem Sie eine benutzerdefinierte Funktion erstellen