Vollständig korrekte Version (aber keineswegs optimiert!):
# Das Sieb des Eratothenes # # Primzahlen sind natürliche Zahlen, die genaus zwei Teiler haben. # Die Zahlen von 0 bis 100: Ende = 101 # In dieser Liste wird gleich für die Zahlen von 0 bis 'Ende' gespeichert # ob sie prim sind: zahlen = [] # Erst wird behauptet, dass alle Zahlen prim sind: for i in range(Ende): zahlen.append(True) # Null und Eins sind nicht prim, egal was das Sieb sagt: zahlen[0]=False zahlen[1]=False # Nun werden alle Vielfachen aller natürlichen Zahlen gestrichen. # Ausnahmen: die 0-fachen und die 1-fachen werden nicht gestrichen. # Beachte: Die Zahl 'Ende' ist nicht in range (2,Ende) enthalten! for i in range(2,Ende): for k in range(2,Ende): if (i*k<Ende): zahlen[i*k]=False # Ausgabe aller gefundenen Primzahlen von 0 bis 'Ende'. for i in range (0,Ende): if zahlen[i]: print (i)
Vorher machen wir ein kleines Spiel mit anfangs 5 FreiwilligInnen.
def fib (n): if n==0: return(0) else: if n==1: return(1) else: return (fib(n-1)+fib(n-2)) print (fib(8))