Проверка чисел 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).

Связанные темы