Проверка чисел Python Armstrong
Проверьте, является ли число числом Армстронга (нарциссическим), где сумма его собственных цифр, возведенная в степень количества цифр, равна самому числу.
Обзор
Число Армстронга (также известное как нарциссическое или плюссовершенное цифровое инвариантное число) — это n-значное число, равное сумме n-ных степеней его цифр.
Например, 153 — это трехзначное число Армстронга, потому что 1^3 + 5^3 + 3^3 = 153. Аналогично, 9474 — это четырехзначное число Армстронга, потому что 9^4 + 4^4 + 7^4 + 4^4 = 9474.
Мы реализуем это в Python, преобразуя целое число в строку, чтобы легко подсчитывать количество цифр и перебирать каждую цифру.
Код и вывод выполнения
Проверьте ряд чисел, чтобы определить, соответствуют ли они математическим критериям чисел Армстронга.
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 ArmstrongПошаговая реализация
- Исследования по теории чисел и логические упражнения
- Задания по математическому программированию в классе
- Развлекательные программы
Часто задаваемые вопросы
Все ли однозначные числа являются числами Армстронга?
Да. Любая отдельная цифра, возведенная в степень 1, равна самой себе (например, 5^1 = 5).