Armstrong python

  • Was ist das Problem mit diesem Python-Code? Es funktioniert bis 407 und wird dann beendet. Ich bin mir nicht sicher, warum es aufhört, wenn der von mir angegebene Bereich 1000 beträgt.


  • Hallo Shamzi,

    nun 407 ist die größte Armstrong Zahl mit 3 Ziffern.

    Dieser Code sucht dann bis 10000 ...

    Armstrong number: 153

    Armstrong number: 370

    Armstrong number: 371

    Armstrong number: 407

    Armstrong number: 1634

    Armstrong number: 8208

    Armstrong number: 9474


    Wenn Du noch höher willst, solltest Du die if (num>= ....) durch eine Schleife ersetzen, die mit d1n + d2n + ... + dnn arbeitet und eine obere Schranke verwenden.


    Gruß, Holger

  • Hi,


    ich habe mal einen Code geschrieben, der alle Armstrong-Zahlen berechnen kann. Allerdings würde das mit einem PC unter Python wohl viele tausend Jahre dauern:


    12:44:48: Armstrong number: 1

    12:44:48: Armstrong number: 2

    12:44:48: Armstrong number: 3

    12:44:48: Armstrong number: 4

    12:44:48: Armstrong number: 5

    12:44:48: Armstrong number: 6

    12:44:48: Armstrong number: 7

    12:44:48: Armstrong number: 8

    12:44:48: Armstrong number: 9

    12:44:48: Armstrong number: 153

    12:44:48: Armstrong number: 370

    12:44:48: Armstrong number: 371

    12:44:48: Armstrong number: 407

    12:44:48: Armstrong number: 1634

    12:44:48: Armstrong number: 8208

    12:44:48: Armstrong number: 9474

    12:44:48: Armstrong number: 54748

    12:44:48: Armstrong number: 92727

    12:44:48: Armstrong number: 93084

    12:44:49: Armstrong number: 548834

    12:44:53: Armstrong number: 1741725

    12:45:01: Armstrong number: 4210818

    12:45:22: Armstrong number: 9800817

    12:45:22: Armstrong number: 9926315


    Viel Spass damit :)


    Gruß, Holger

  • Also in Python könnte das so aussehen (was auch immer die Programmiersprache mit den Klammern um die Bedingungen und den schlechten Namen ist 😛):

    Das sucht einfach unendlich. Falls man das auf einen Zahlenbereich einschränken möchte, müsste man `count()` durch ein entsprechendes `range()` ersetzen.

    “Es ist schon über so viele Dinge Gras gewachsen, dass man bald keiner Wiese mehr trauen kann.”



  • Vielen Dank für deine Hilfe :)