Benutzer-Werkzeuge

Webseiten-Werkzeuge


types:arrays:eratosthenes:loesung

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
types:arrays:eratosthenes:loesung [2021/02/07 14:54] – angelegt Martin Pabsttypes:arrays:eratosthenes:loesung [2021/12/29 11:29] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 3: Zeile 3:
 **Strategie:** **Strategie:**
   * Deklariere ein Feld ''gestrichen'' von 100 001 Werten des Datentyps ''boolean''. ''gestrichen[i]'' soll angeben, ob das Zahlenfeld mit der Zahl ''i'' "gestrichen" ist.   * Deklariere ein Feld ''gestrichen'' von 100 001 Werten des Datentyps ''boolean''. ''gestrichen[i]'' soll angeben, ob das Zahlenfeld mit der Zahl ''i'' "gestrichen" ist.
-  * Setze ''istPrim[0] = true'' und ''istPrim[1] = true'', denn 0 und 1 sind keine Primzahlen+  * Setze ''gestrichen[0] = true'' und ''gestrichen[1] = true'', denn 0 und 1 sind keine Primzahlen
   * Jetzt bis Du dran! Hier noch ein paar kleine Tipps:   * Jetzt bis Du dran! Hier noch ein paar kleine Tipps:
     * Du wirst zwei ineinandergeschachtelte Wiederholungen brauchen.     * Du wirst zwei ineinandergeschachtelte Wiederholungen brauchen.
Zeile 11: Zeile 11:
 <HTML> <HTML>
  
-<div class="java-online" style="height: 600px; width: 80%" data-java-online="{'withBottomPanel': false, 'id': 'eratosthenes'}">+<div class="java-online" style="height: 600px; width: 100%" data-java-online="{'withBottomPanel': false, 'id': 'eratosthenes'}">
  
 <script type="text/plain" title="Eratosthenes.java"> <script type="text/plain" title="Eratosthenes.java">
-for(int i = 0; i < 10; i++){ +int anzahl = 100000; 
-   println("Hallo Welt!");+ 
 +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 + "..."); 
 +   for(int i = nächstePrimzahl * 2; i <= anzahl; i = i + nächstePrimzahl) { 
 +      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> </script>
types/arrays/eratosthenes/loesung.1612706051.txt.gz · Zuletzt geändert: 2021/12/29 11:29 (Externe Bearbeitung)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki