Solution
is_prime
Zunächst überprüfen wir alle Randbedingungen für n < 2
if n < 2:
return False
wir wissen laut definition dass hier die Funktion zu False evaluieren soll.
Jetzt wollen wir durch alle Zahlen bis zu unserer Zahl n iterieren und schauen ob sich n noch anders teilen lässt
for num in range(2, n):
if n % num == 0:
return False
Wenn n durch num teilbar ist können wir False zurückgeben, da n nicht nur durch sich selbst teilbar ist.
Jetzt geben wir noch True zurück wenn wir durch die For-Schleife iteriert sind und haben die Funktion.
def is_prime(n: int) -> bool:
if n < 2:
return False
for num in range(2, n):
if n % num == 0:
return False
return True
next_prime
Wir inkrementieren solange n bis is_prime erfüllt ist und geben diesen Wert dann zurück.
Iterativ:
- wir speichern uns
nzwischen und inkrementieren initial - nun testen wir in einer
While-Schleifenumbis diese eine Primzahl ist und geben sie zurück
num += 1
while not is_prime(num):
num += 1
return num
Rekursiv:
- Unsere Abbruchbedingung ist, dass
n + 1eine Primzahl ist - Ansonsten müssen wir rekursiv
ninkrementieren bis wir eine Zahl erreichen die Prim ist
if is_prime(n + 1):
return n + 1
else:
return next_prime(n + 1)