Python Armstrong Number Checker

Überprüfen Sie, ob es sich bei einer Zahl um eine Armstrong-Zahl (narzisstische Zahl) handelt, bei der die Summe ihrer eigenen Ziffern hoch mit der Anzahl der Ziffern gleich der Zahl selbst ist.

Versuchen Sie es im Editor

Übersicht

Eine Armstrong-Zahl (auch bekannt als narzisstische oder plusperfekte digitalinvariante Zahl) ist eine n-stellige Zahl, die gleich der Summe der n-ten Potenzen ihrer Ziffern ist.

Beispielsweise ist 153 eine dreistellige Armstrong-Zahl, weil 1^3 + 5^3 + 3^3 = 153. Ebenso ist 9474 eine vierstellige Armstrong-Zahl, weil 9^4 + 4^4 + 7^4 + 4^4 = 9474.

Wir implementieren dies in Python, indem wir die Ganzzahl in eine Zeichenfolge konvertieren, um die Anzahl der Ziffern einfach zu zählen und jede Ziffer zu durchlaufen.

Code- und Ausführungsausgabe

Überprüfen Sie eine Reihe von Zahlen, um festzustellen, ob sie die mathematischen Kriterien für Armstrong-Zahlen erfüllen.

def is_armstrong(num):
    num_str = str(num)
    n = len(num_str)
    digit_sum = sum(int(digit) ** n for digit in num_str)
    return digit_sum == num

test_nums = [153, 370, 9474, 123]
for val in test_nums:
    result = "Armstrong" if is_armstrong(val) else "Not Armstrong"
    print(f"{val:4d} -> {result}")
Terminal-Ausgabe
 153 -> Armstrong
 370 -> Armstrong
9474 -> Armstrong
 123 -> Not Armstrong

Schrittweise Umsetzung

  • Zahlentheorie-Forschung und Logikübungen
  • Mathe-Programmieraufgaben im Klassenzimmer
  • Freizeitprogrammierung

Häufig gestellte Fragen

Sind alle einstelligen Zahlen Armstrong-Zahlen?

Ja. Jede einzelne Ziffer, die mit 1 potenziert wird, ist gleich sich selbst (z. B. 5^1 = 5).

Verwandte Themen