Benutzer-Werkzeuge

Webseiten-Werkzeuge


types:arrays:eratosthenes:loesung2

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

types:arrays:eratosthenes:loesung2 [2022/03/21 07:30] – angelegt Martin Pabsttypes:arrays:eratosthenes:loesung2 [2022/03/21 07:34] (aktuell) Martin Pabst
Zeile 10: Zeile 10:
  
 <script type="text/plain" title="Eratosthenes.java"> <script type="text/plain" title="Eratosthenes.java">
-int anzahl = 100000;+int anzahl = Input.readInt("Obere Grenze: ");
  
 boolean[] gestrichen = new boolean[anzahl + 1]; boolean[] gestrichen = new boolean[anzahl + 1];
-gestrichen[0] = true;+// ... sind am Anfang alle mit false initialisiert! 
 +// gestrichen[0] wird nicht benutzt! 
 + 
 +// 1 streichen:
 gestrichen[1] = true; gestrichen[1] = true;
  
-for(int i = 2; i <= anzahl; i++) { +int = 2; 
-   gestrichen[i] = false; +while(<= Math.sqrt(anzahl)) { 
-+   // Vielfache streichen: 
- +   for(int zuStreichen * 2; zuStreichen <= anzahl; zuStreichen zuStreichen p) { 
-int nächstePrimzahl = 2; +      gestrichen[zuStreichen] = true;
-while(nächstePrimzahl <= Math.sqrt(anzahl)) { +
-   // Alle Vielfachen von nächstePrimzahl streichen: +
-   println("Streiche die Vielfachen von " + nächstePrimzahl + "..."); +
-   for(int nächstePrimzahl * 2; <= anzahl; nächstePrimzahl) { +
-      gestrichen[i] = true; +
    }    }
        
-   // nächste Primzahl finden +   // nächste nicht-gestrichene suchen: 
-   nächstePrimzahl++; +   p++; 
-   while(gestrichen[nächstePrimzahl]) { +   while(gestrichen[p== true && p <= anzahl) { 
-      nächstePrimzahl++;+      p++;
    }    }
 +
 } }
  
-// Ausgabe der Primzahlen +// Ausgabe: 
-int spalte = 0; +for(int i = 1; i <= anzahl; i++) {
-for(int i = 2; i <= anzahl; i++) {+
    if(gestrichen[i] == false) {    if(gestrichen[i] == false) {
-      print(i + ", "); +      println(i);
-      spalte++; +
-      if(spalte == 5) {   // Zeilenumbruch nach jeweils 5 Spalten +
-         println(); +
-         spalte = 0; +
-      }+
    }    }
 } }
 +
 +// Ausgabe der Primzahlzwillinge:
 +for(int i = 3; i <= anzahl - 2; i++) {
 +   if(gestrichen[i] == false && gestrichen[i + 2] == false) {
 +      println("[" + i + ", " + (i + 2) + "]");
 +   }
 +}
 +
 </script> </script>
  
types/arrays/eratosthenes/loesung2.1647844257.txt.gz · Zuletzt geändert: 2022/03/21 07:30 von Martin Pabst

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki