Java - Primzahlen ermitteln
Soll zwischen 1 und 100 alle Primzahlen in Java ermitteln. Lasse ich das Programm laufen wird keine Zahl ausgegeben. Ich habe festgestellt, dass bei jeder Zahl primzahl == false ist. Zu beginn war der boolean primzahl true. Was habe ich falsch gemacht?
System.out.println ("Primzahlen:");
for (i=1 ;i<=100 ;i++ ) {
if (i==1) {
primzahl = false;
} // end of if
else {
for (j=2 ;j<i ;j++ ) {
if (i % j == 0) {
primzahl = false;
} // end of if
} // end of for
} // end of if-else
if (primzahl == true) {
System.out.println (i);
} // end of if
} // end of for
2 Antworten
Vom Beitragsersteller als hilfreich ausgezeichnet
primzahl wird bei i = 1 auf false gesetzt, und dann aber nie wieder auf true zurück gesetzt. Wenn du es so machen willst, müsstest du es zu Beginn der for-Schleife zuerst wieder auf true setzen
Nutzer, der sehr aktiv auf gutefrage ist
Und zum Primzahlen ermitteln ist so'n Divisionstest nicht optimal... Methoden wie http://de.wikipedia.org/wiki/Sieb_des_Eratosthenes sind bei höheren Zahlen performanter.