Ich sitze gerade im Informatik Kurs und unser Lehrer hat uns die Aufgabe aufgetragen ein Programm zu erstellen, welches die Faktorzerlegung von den Zahlen zu stande bringen soll, die keine Primzahlen sind. Wir haben es schon so weit gebracht, dass wir ein Programm erstellt haben, welches zwischen zwei Intervallen unterscheiden kann was eine Primzahl ist und was keine Primzahl ist.
(Achja bevor ich es vergesse! Es ist wichtig, dass das Programm aus mehreren Definitionenteilen besteht.)
Code: Alles auswählen
#primzahl.py name des programms
# im folgenden benötigt das programm die quadratwurzel
from math import *
# die funktion primzahl wird definiert. sie testet ob die zahl eine primzahl ist
def primzahl (zahl):
if zahl <= 2:
prim = 1
else:
for i in range(2,int(sqrt(zahl))+1):
if zahl%i == 0:
prim = 0
break
else:
prim = 1
return prim
# die funktion eingabe nimmt die intervallgrenzen auf und gibt sie weiter
def eingabe():
print "Ich ermittle alle Primzahlen in einen Intervall"
a=input("Untere Intervallgrenze: ")
b=input("Obere Intervallgrenze: ")
return(a, b)
# die funktion verarbeitung sorgt dafür, dass die zahlen innerhalb der intervallgrenzen untersucht werden
def verarbeitung(intervall):
prim=[] # gefundene primzahlen werden in der liste prim gesammelt,sie ist zunächst leer
for i in range(intervall[0], intervall[1]+1):
if primzahl(i): # hier arbeit die funktion primzahl
prim+=[i] # die liste prim wird um das element i - eine weitere primzahl- erweitert
return prim
# die funktion ausgabe sorgt dafür, dass die primzahlen auf dem bildschirm erscheinen
def ausgabe(primzahlen):
print"Primzahlen:"
for zahl in primzahlen:
print zahl, # das komma bewirkt, dass alle elemente der liste hinter- und nicht untereinander geschrieben werden
# hauptprogramm : dieser kleine dreizeiler ist das eigentliche programm
intervall=eingabe() # die eingegebenen intervallgrenzen sind jetzt auch intervallgrenzen
primzahlliste=verarbeitung (intervall) # die berechneten primzahlen sind eine liste
ausgabe (primzahlliste) # die liste wird ausgegeben