Also ich habe ein Skript geschrieben, das mit einem, zwar ineffizienten aber eigenem, Algorithmus, in einem angegebenen Breich alle Primzahlen auflistet.
Da ich gerne mit den Zahlen weiterarbeiten möchte, möchte ich gerne eine temporäre Datei erstellen, die mir entweder jede gefundene Primzahl in eine einzelne Zeile schreibt, oder sie mit einem Komma voneinander trennt.
Außerdem wäre es gut wenn man mir jemand dazu erklärt wie man jede einzelne Zahl auch wieder ausliest, bzw. weiterarbeiten kann.
Der Code des Programms:
Code: Alles auswählen
from decimal import Decimal, ROUND_UP
def getAllPrime(minPrime, maxPrime):
notPrime = []
isPrime = []
while int(maxPrime) > minPrime:
maxPrime -= 1
indexPrime = len(str(maxPrime)) - 1
exceptPrime = ["2", "4", "5", "6", "8", "0"]
if str(maxPrime)[indexPrime] in exceptPrime:
if str(maxPrime) == "2" or str(maxPrime) == "5":
isPrime.append(maxPrime)
else:
if sum([int(char) for char in str(maxPrime)]) % 3 == 0:
notPrime.append(maxPrime)
else:
if int(maxPrime)**0.5%1 != 0.0:
div = Decimal((maxPrime + 1)**0.5).quantize(Decimal('1.'),
rounding = ROUND_UP)
while div > 2:
if div%5 == 0 or div%2 == 0:
div -= 1
division = maxPrime%div
if division != 0.0:
"""print("Searching", maxPrime, "/", div, "=", maxPrime/div)
- Kann man hinzufügen, wenn man gerne einen Statusbericht haben möchte... """
div -= 1
elif division == 0:
"""print("Searching", maxPrime, "/", div, "=", maxPrime/div)
- Kann man hinzufügen, wenn man gerne einen Statusbericht haben möchte... """
notPrime.append(maxPrime)
break
else:
isPrime.append(maxPrime)
else:
notPrime.append(maxPrime)
print(isPrime)
if __name__ == "__main__":
getAllPrime(1, 1000000)