Seite 1 von 1

Python Code Probleme

Verfasst: Samstag 22. Mai 2021, 17:54
von Valentino462
Ich will ein Algorithmus erstellen, bei dem der Nutzer eine Zahl (Obergrenze) eingibt und das Programm dann innerhalb des Intervalls die Zahl mit dem meisten Teilern ausgibt. Ich habe nur keine Ahnung, wo mein Fehler ist.

Code: Alles auswählen

while True:
    a = eval(input("Obergrenze: "))
    z = 0
    erg1 = 1
    for i in range(1, a+1):
        for j in range(1,i+1):
            if i%j == 0:
                z = z + 1   
            else:
                continue
        if z > erg1:
            anzahl = z
    print(anzahl)

Re: Python Code Probleme

Verfasst: Samstag 22. Mai 2021, 18:21
von Sirius3
`eval` sollte man nicht benutzen, hier ist `int` das richtige. Was soll die 1 bei `erg1`? Benutze keine Abkürzungen sondern sprechende Namen, also `ergebnis`; aber diese Variable hat eh immer den Wert 1, für was ist die also da?
Das `else: continue` ist überflüssig, da nach dem else eh nichts mehr in der Schleife passiert.

Wie denkst Du, funktioniert dieser Algorithmus?
Beim Programmieren teilt man ein Problem in kleinere Teilprobleme, für die man einfache Funktionen schreiben kann.
Hier also als erstes eine Funktion, die zu einer gegebenen Zahl die Anzahl der Teiler berechnet.
Wenn Du diese Funktion geschrieben und getestet hast, dann kannst Du Dich darum kümmern, die Zahl mit den meisten Teilern zu suchen.