Aufgabe 5: (Miller-Rabin-Test, zufällige Primzahl)
isCompositeWitness(a, n)
aus der Vorlesung, die true zurückgibt, wenn die Zahl a ein Zeuge dafür ist, dass die Zahl n zusammengesetzt ist.
isCompositeMillerRabin(n, k)
die k zufällig gewählte Zahlen a ∈ {2, n-2} als Zeugen vernimmt und true zurückgibt, wenn eine dieser Zahlen bezeugen kann, dass n zusammengesetzt ist. Ansonsten gibt die Funktion false zurück, d.h. erkennt n aus Mangel an Beweisen des Gegenteils als Primzahl an.
isProbablyPrime(n)
die den Miller-Rabin-Primzahltest mit k=10 durchführt und true zurückgibt, falls n nicht als zusammengesetzt entlarvt werden kann.
randomPrime(k)
die eine zufällige Primzahl der Länge k, d.h. zwischen 2k-1 und 2k-1 erzeugt.
Benutzen Sie die Python-Funktion randint(a, b) aus der Bibliothek random zur Erzeugung einer ganzzahligen Zufallszahl zwischen a und b.