Benutzer-Werkzeuge

Webseiten-Werkzeuge


arrays:aufgabe7loesung:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
arrays:aufgabe7loesung:start [2025/03/23 08:50] – angelegt Martin Pabstarrays:aufgabe7loesung:start [2025/03/23 09:01] (aktuell) Martin Pabst
Zeile 1: Zeile 1:
 ===== Lösung zu Aufgabe 7: Ausgabe aller Primzahlzwillinge ===== ===== Lösung zu Aufgabe 7: Ausgabe aller Primzahlzwillinge =====
 +<WRAP center round tip 80%>
 +**Bemerkungen zur Lösung unten:**
 +  * ''&&'' ist der **und-Operator** in Java, \\ d.h. ''a && b'' hat genau dann den Wert ''true'', wenn sowohl ''a'' als auch ''b'' den Wert ''true'' haben.
 +  * ''||'' ist der **oder-Operator** in Java, \\ d.h. ''a || b'' hat genau dann den Wert ''true'', wenn ''a'' oder ''b'' oder beide den Wert ''true'' haben.
 +  * ''!'' ist der **nicht-Operator** in Java. Er macht aus ''true'' den Wert ''false'' und aus ''false'' den Wert ''true''.
 +  * Zeile 26 im Programm unten könnte man noch eleganter schreiben: 
 +<code java>
 +if(!istGestrichen[i] && !istGestrichen[i + 2])
 +</code>
 +</WRAP>
  
 <HTML> <HTML>
Zeile 8: Zeile 18:
 int anzahl = 100000; int anzahl = 100000;
  
-boolean[] gestrichen = new boolean[anzahl + 1]; +boolean[] istGestrichen = new boolean[anzahl + 1]; 
-gestrichen[0] = true; +istGestrichen[0] = true; 
-gestrichen[1] = true;+istGestrichen[1] = true;
  
-for(int i = 2; i <= anzahl; i++) { +for (int i = 2; i <= anzahl; i++) { 
-   gestrichen[i] = false;+   istGestrichen[i] = false;
 } }
  
 int nächstePrimzahl = 2; int nächstePrimzahl = 2;
-while(nächstePrimzahl <= Math.sqrt(anzahl)) { +while (nächstePrimzahl <= Math.sqrt(anzahl)) { 
-   // Alle Vielfachen von nächstePrimzahl streichen: +   for (int i = nächstePrimzahl * 2; i <= anzahl; i = i + nächstePrimzahl) { 
-   println("Streiche die Vielfachen von " + nächstePrimzahl + "..."); +      istGestrichen[i] = true; 
-   for(int i = nächstePrimzahl * 2; i <= anzahl; i = i + nächstePrimzahl) { +
-      gestrichen[i] = true; +
    }    }
        
    // nächste Primzahl finden    // nächste Primzahl finden
    nächstePrimzahl++;    nächstePrimzahl++;
-   while(gestrichen[nächstePrimzahl]) {+   while (istGestrichen[nächstePrimzahl]) {
       nächstePrimzahl++;       nächstePrimzahl++;
    }    }
 } }
  
-// Ausgabe der Primzahlen +// Ausgabe der Primzahlzwillinge 
-int spalte = 0; +for (int i = 2; i <= anzahl; i++) { 
-for(int i = 2; i <= anzahl; i++) { +   if(istGestrichen[i] == false && istGestrichen[i + 2] == false) { 
-   if(gestrichen[i] == false) { +      print("("i + ", " + (i 2+ "), ");
-      print(i + ", "); +
-      spalte+++
-      if(spalte == 5{   // Zeilenumbruch nach jeweils 5 Spalten +
-         println(); +
-         spalte = 0; +
-      }+
    }    }
 } }
arrays/aufgabe7loesung/start.1742719855.txt.gz · Zuletzt geändert: 2025/03/23 08:50 von Martin Pabst

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki