Algorithmus für n-te Primzahl?
Ich brauche Hilfe mit einen Algorithmus. Man soll eine Zahl "n" eingeben und der Algorithmus soll einen die n-te Primzahl ausgeben. (Ich nutze Python 3)
zb.: bei 10 die 29, bei 5 die 11 usw.
3 Antworten
google mal "Sieb des Eratosthenes".
Du kannst auch die Natürlichen Zahlen in einer Schleife durchlaufen und Primzahltests wie den Fermat auf diese anwenden.
Ist nicht die schnellste Methode aber sollte funktionieren:
//Funktion:
def nth_prime_number(n):
prime_list = [2]
num = 3
while len(prime_list) < n:
for p in prime_list:
if num % p == 0:
break
else:
prime_list.append(num)
num += 2
return prime_list[-1]
//Funktion mit Paramter aufrufen und ausgeben:
print(nth_prime_number(10))
Hier wird eigentlich einfach immer überprüft, ob num (nächste Primzahl) ein vielfaches von der zuvor gefundenen Primzahl ist. Wenn ja wird es in eine Liste verschoben und wenn die Liste länger ist als "n", wird die letzte Zahl der Liste zurückgegeben.
Liste primzahlen mit den Zahlen 2,3,5,7,11 drin
wenn n<5 ist:
Print(primzahlen(n)sonst:
während primzahlen-länge > n ist:
dividiere jede zahl, die nicht mit 0, 2, 4, 5, 6, 8 endet mit allen zahlen aus primzahlen. wenn keine passt: füge zahl zu liste primzahlen hinzu.