Benutzer-Werkzeuge

Webseiten-Werkzeuge


arrays:eratosthenes:loesung

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

arrays:eratosthenes:loesung [2022/12/08 08:34] – angelegt Martin Pabstarrays:eratosthenes:loesung [2024/03/06 19:27] (aktuell) Martin Pabst
Zeile 30: Zeile 30:
    for(int i = nächstePrimzahl * 2; i <= anzahl; i = i + nächstePrimzahl) {    for(int i = nächstePrimzahl * 2; i <= anzahl; i = i + nächstePrimzahl) {
       gestrichen[i] = true;        gestrichen[i] = true; 
 +   }
 +   
 +   // nächste Primzahl finden
 +   nächstePrimzahl++;
 +   while(gestrichen[nächstePrimzahl]) {
 +      nächstePrimzahl++;
 +   }
 +}
 +
 +// Ausgabe der Primzahlen
 +int spalte = 0;
 +for(int i = 2; i <= anzahl; i++) {
 +   if(gestrichen[i] == false) {
 +      print(i + ", ");
 +      spalte++;
 +      if(spalte == 5) {   // Zeilenumbruch nach jeweils 5 Spalten
 +         println();
 +         spalte = 0;
 +      }
 +   }
 +}
 +</script>
 +
 +</div>
 +
 +</HTML>
 +
 +===== Weitere Variante (mit while-loop anstatt for-loop) =====
 +
 +<HTML>
 +
 +<div class="java-online" style="height: 600px; width: 100%" data-java-online="{'withBottomPanel': false, 'id': 'eratosthenes2'}">
 +
 +<script type="text/plain" title="Eratosthenes.java">
 +int anzahl = 100000;
 +
 +boolean[] gestrichen = new boolean[anzahl + 1];
 +gestrichen[0] = true;
 +gestrichen[1] = true;
 +
 +for(int i = 2; i <= anzahl; i++) {
 +   gestrichen[i] = false;
 +}
 +
 +int nächstePrimzahl = 2;
 +while(nächstePrimzahl <= Math.sqrt(anzahl)) {
 +   // Alle Vielfachen von nächstePrimzahl streichen:
 +   println("Streiche die Vielfachen von " + nächstePrimzahl + "...");
 +   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

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki