Python :: Aufgabe #46 :: Lösung #1

6 Lösungen Lösungen öffentlich
#46

Alle Primzahlen bis zu einem Maximalwert ermitteln

Anfänger - Python von devnull - 26.02.2014 um 18:36 Uhr
Es soll ein Programm geschrieben werden, welches alle Primzahlen im Bereich von 2 bis zu einem Maximalwert sucht und auf der Konsole ausgibt.
Den Maximalwert soll der Benutzer beim Programmaufruf auf der Kommandozeile angeben können.
Der Algorithmus zur Primzahlensuche ist frei wählbar.
#1
vote_ok
von malthea (180 Punkte) - 04.03.2014 um 19:03 Uhr
Quellcode ausblenden Python-Code
""" primzahlen - Python 3.3.4
    Berechnet alle Primzahlen im Intervall [2 - obere Grenze] """

def eingabe (a):
    """ abgesicherte Eingabe fuer Integerwerte (a==False)
    """
    b = 0

    while a == False:
        try:
            b = int(input(':'))
            a = True
            if b < 3:
                a =False
                print ('Bitte eine positive Zahl groesser als 2 eingeben', end = ' ')
        except ValueError:
            print ('Bitte eine Integerzahl eingeben', end = ' ')
            a = False
    return b

def aufaddition (a, b, c):
    """ addiert die bisher gefundenen Primzahlen auf bis >= aktuelle Zahl
    """
    while a <= c:
        a += b

    return (a)
    
pz = [2]
pzsumme = [2]

print ('bis zu welcher Zahl sollen die Primzahlen berechnet werden?', end = ' ')
maximum = eingabe (False)

pzanz = 1
lfdzahl = 3
flag = True
i = 0
j = 0

while lfdzahl in range (2, maximum+1):
    
    while flag == True and i < pzanz:

        while i in range (0, pzanz):
            if pzsumme[i] == lfdzahl:
                flag = False                   # keine Primzahl

            pzsumme[i] = aufaddition (pzsumme[i], pz[i], lfdzahl)

            i += 1

    if flag == True:
        pz.append (lfdzahl)
        pzsumme.append (lfdzahl)
        pzanz += 1

    lfdzahl +=1
    i = 0
    flag = True



print (pz)

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben