arrays:eratosthenes:loesung
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
arrays:eratosthenes:loesung [2022/12/08 08:34] – angelegt Martin Pabst | arrays:eratosthenes:loesung [2024/03/06 19:27] (aktuell) – Martin Pabst | ||
---|---|---|---|
Zeile 30: | Zeile 30: | ||
| | ||
gestrichen[i] = true; | gestrichen[i] = true; | ||
+ | } | ||
+ | |||
+ | // nächste Primzahl finden | ||
+ | | ||
+ | | ||
+ | nächstePrimzahl++; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // Ausgabe der Primzahlen | ||
+ | int spalte = 0; | ||
+ | for(int i = 2; i <= anzahl; i++) { | ||
+ | | ||
+ | print(i + ", "); | ||
+ | spalte++; | ||
+ | if(spalte == 5) { // Zeilenumbruch nach jeweils 5 Spalten | ||
+ | | ||
+ | | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | ===== Weitere Variante (mit while-loop anstatt for-loop) ===== | ||
+ | |||
+ | < | ||
+ | |||
+ | <div class=" | ||
+ | |||
+ | <script type=" | ||
+ | int anzahl = 100000; | ||
+ | |||
+ | boolean[] gestrichen = new boolean[anzahl + 1]; | ||
+ | gestrichen[0] = true; | ||
+ | gestrichen[1] = true; | ||
+ | |||
+ | for(int i = 2; i <= anzahl; i++) { | ||
+ | | ||
+ | } | ||
+ | |||
+ | int nächstePrimzahl = 2; | ||
+ | while(nächstePrimzahl <= Math.sqrt(anzahl)) { | ||
+ | // Alle Vielfachen von nächstePrimzahl streichen: | ||
+ | | ||
+ | int i = nächstePrimzahl * 2; | ||
+ | while (i <= anzahl) { | ||
+ | gestrichen[i] = true; | ||
+ | i = i + nächstePrimzahl; | ||
} | } | ||
arrays/eratosthenes/loesung.1670488481.txt.gz · Zuletzt geändert: 2022/12/08 08:34 von Martin Pabst