~~NOTOC~~
=== Wiederholung ===
Pseudo-Code: Teiler einer Zahl
Pseudo-Code: alle geraden Zahlen bis zu eingegebener Zahl ausgeben
Pseudo-Code: dieselben Zahlen rückwärts ausgeben
====== Vom Pseudo-Code zum Python-Programm: Liste der Primzahlen (naiv; per Funktion; per Sieb Eratosthenes) ======
Schreibe Pseudo-Code auf ein Blatt Papier für das folgende Problem:
* Eingabe (durch den Benutzer): eine positive natürliche Zahl
* Ausgabe: Alle Teiler der eingegebenen Zahl und die Information, ob die eingegebene Zahl eine Primzahl ist
Zeige mir den Pseudo-Code. Wenn ich damit zufrieden bin, öffne den Laptop und schreibe das zugehörige Python-Programm ''teiler-und-prim.py''.
Verwende eine Variable ''anzahl_teiler'', in der die Anzahl der bisher gefundenen Teiler gespeichert wird.
Schreibe Pseudo-Code auf ein Blatt Papier:
* Eingabe: eine positive natürliche Zahl
* Ausgabe: eine Liste aller Primzahlen bis zu der eingegebenen Zahl und zusätzlich die Anazahl der ausgegebenen Primzahlen
Zeige mir den Pseudo-Code. Wenn ich damit zufrieden bin: Schreibe das entsprechende Python-Programm.
Erkläre: ''print(t, end=" ")''
===== Primzahlenliste mit Hilfe einer Funktion, die die Frage beantwortet, ob eine Zahl eine Primzahl ist oder nicht =====
===== Algorithmus: Das Sieb des Eratosthenes =====
Ob die Anzahl der von dir gefundenen Primzahlen korrekt ist, kannst du mit Hilfe der Tabelle auf https://t5k.org/howmany.html prüfen. Dort steht $\pi(x)$ für die Anzahl der Primzahlen, die kleiner-gleich $x$ sind.
===== Laufzeit ermitteln =====
Ermittle, wie lange die beiden Programme für die Primzahllisten dauern, wenn man alle Primzahlen kleiner-gleich 100 Millionen ausgibt. Dazu:
* Am Programmbeginn die folgenden Zeilen einfügen:
import time
startzeit = time.time()
* Am Programmende die folgende Zeile einfügen:
print('Laufzeit: ', time.time() - startzeit, ' Sekunden.')
===== Das nächste Mal =====
Zweiersystem, Umwandlung vom Dezimal- ins Zweiersystem