Als Teil des Lernens von Python habe ich Code geschrieben, um rekursiv Primzahlen zu finden.
Diesmal habe ich ein Eratostenes-Sieb verwendet.
Das Sieb des Eratosthenes ist ein einfacher Algorithmus zum Auffinden aller Primzahlen unter einer bestimmten Ganzzahl. Es hat diesen Namen, weil es vom antiken griechischen Wissenschaftler Elatostines erfunden worden sein soll. (Wikipedia "[Eratostenes Sieve](https://ja.wikipedia.org/wiki/%E3%82%A8%E3%83%A9%E3%83%88%E3%82%B9%E3%83% 86% E3% 83% 8D% E3% 82% B9% E3% 81% AE% E7% AF% A9) ”)
Unten ist der Code.
Sieve.py
array = [i for i in range(2, 100)] #Wertebereich, den Sie suchen möchten
prime = [2] #Liste der Primzahlen
def Sieve(array, prime): #Eratostenes Sieb
newArray = []
for i in array:
if i%prime[-1] != 0:
newArray.append(i)
prime.append(newArray[0]) #Primzahl zur Liste hinzufügen
if array[-1] == prime[-1]:
return prime #Gibt eine Liste von Primzahlen zurück
return Sieve(newArray, prime)
Prime = Sieve(array, prime)
print(Prime) #Ausgabe
Als Ergebnis wurden die Primzahlen von 2 bis ~~ 100 ~~ 99 gefunden (korrigiert am 22. Dezember 2019).
Ausgabe
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
Es scheint, dass es eine Obergrenze gibt, wenn es um Wiederholungen in Python geht. Die Obergrenze und deren Änderung wurden in diesem Artikel erläutert.
Danke für Ihren Besuch. Wenn Sie Vorschläge haben, hinterlassen Sie diese bitte im Kommentarbereich.
Recommended Posts