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.
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}") 153 -> Armstrong
370 -> Armstrong
9474 -> Armstrong
123 -> Not ArmstrongWdraż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).