Primzahlen(Python)

Aus IT074-Wiki

Wechseln zu: Navigation, Suche

Ermittlung durch Liste

Der folgende Code-Schnipsel ermittelt alle Primzahlen von 2 bis zu einem übergebenen Wert (sys.argv[1]):

Der benutzte Algorithmus ist der gleiche wie im Lua-Beispiel.

#!/usr/bin/env python
 
import sys
import string
 
primelist = list()
# Eingabe (String) wird zu Interger gewandelt (atoi - ascii to integer)
maximum = string.atoi(sys.argv[1])
 
# Liste primelist wird mit den zu prüfenden Zahlen gefüllt
for i in range(2, maximum+1):
	primelist.append(i)
# Iteriert über die Liste
for v in primelist:
        # Bricht ab, sobald das Quadrat des behandelten Wertes den eingegebenen Maximalwert übersteigt
	if v*v > maximum: break
        # Andernfalls wird nochmal über die Liste von Anfang an iteriert
	for va in primelist:
                # Für alle gefundenen Vielfache von v ...
		if va > v and (va % v) == 0:
                        # ... entferne sie von der Liste
			primelist.remove(va)
# gibt die Liste der gefundenen Primzahlen auf der Konsole aus
print primelist

Siehe auch