Python Code Probleme

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Valentino462
User
Beiträge: 1
Registriert: Samstag 22. Mai 2021, 17:49

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)
Sirius3
User
Beiträge: 18274
Registriert: Sonntag 21. Oktober 2012, 17:20

`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.
Antworten