Sprawdzanie liczb Armstronga w Pythonie

Sprawdź, czy liczba jest liczbą Armstronga (narcystyczną), w której suma jej własnych cyfr podniesiona do potęgi liczby cyfr jest równa samej liczbie.

Spróbuj w Edytorze

Przegląd

Liczba Armstronga (znana również jako narcystyczna lub zaprzestająca cyfrowa liczba niezmienna) to n-cyfrowa liczba równa sumie n-tych potęg jej cyfr.

Na przykład 153 to 3-cyfrowa liczba Armstronga, ponieważ 1^3 + 5^3 + 3^3 = 153. Podobnie 9474 to 4-cyfrowa liczba Armstronga, ponieważ 9^4 + 4^4 + 7^4 + 4^4 = 9474.

Implementujemy to w Pythonie, konwertując liczbę całkowitą na ciąg znaków, aby łatwo policzyć cyfry i wykonać iterację po każdej cyfrze.

Dane wyjściowe kodu i wykonania

Sprawdź serię liczb, aby określić, czy spełniają one matematyczne kryteria liczb Armstronga.

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}")
Wyjście terminala
 153 -> Armstrong
 370 -> Armstrong
9474 -> Armstrong
 123 -> Not Armstrong

Wdrażanie krok po kroku

  • Badania nad teorią liczb i ćwiczenia z logiki
  • Zadania z programowania matematycznego w klasie
  • Programowanie rekreacyjne

Często zadawane pytania

Czy wszystkie liczby jednocyfrowe są liczbami Armstronga?

Tak. Każda pojedyncza cyfra podniesiona do potęgi 1 jest równa sobie (np. 5^1 = 5).

Powiązane tematy