Was mich persönlich viel mehr interessiert ist, in wie fern ich nach den bekannten Regeln der Formatierung gearbeitet habe.
Hier mal mein Ergebnis:
Code: Alles auswählen
from math import sqrt
from time import time
## Berechnet alle Primzahlen im Zahlenraum des letzten Array-Eintrages bis Max
#
# @param[in] array (@em Array) Liste mit bereits errechneten Primzahlen
# @param[in] max (@em int) Maximalwert der anzufertigenden Primzahlen-Liste
# @return (@em Array) Primzahlen-Liste
def prim( max, array):
result = 1
y = array[-1] + 2
while y <= max:
wurzel = sqrt(y)
for i in array:
if i > wurzel: break
if y%i == 0:
result = 0
break
if result: array.append( int(y) )
result = 1
y = y + 2
return array
## Algorithmus der ueberprueft, ob es sich um eine Primzahl handelt
#
# @param[in] array (@em Array) Liste mit bereits errechneten Primzahlen
# @param[in] go (@em int) Die zu ueberpruefende Zahl
# @return (@em int) Der kleineste Teiler, -1 bei Primzahlenstatus
def isprim( go, array = [2, 3] ):
wurzel = sqrt(go)
primresult = prim( wurzel, array )
for i in primresult:
if go%i == 0:
return i
return -1
## Junk&Trash 4 Tests
#
# http://de.wikipedia.org/wiki/Integer_(Datentyp)
if __name__ == '__main__':
start = time()
print isprim( 4294967295 )
print time() - start
Freue mich über jede Anregung oder Verbesserungsvorschläge.
Danke im Vorraus,
Gruß Zack