Comprobador de números Python Armstrong

Verifique si un número es un número de Armstrong (narcisista) donde la suma de sus propios dígitos elevada a la potencia del número de dígitos es igual al número mismo.

Pruébelo en el editor

Descripción general

Un número de Armstrong (también conocido como número invariante digital narcisista o pluscuamperfecto) es un número de n dígitos que es igual a la suma de las enésimas potencias de sus dígitos.

Por ejemplo, 153 es un número de Armstrong de 3 dígitos porque 1^3 + 5^3 + 3^3 = 153. De manera similar, 9474 es un número de Armstrong de 4 dígitos porque 9^4 + 4^4 + 7^4 + 4^4 = 9474.

Implementamos esto en Python convirtiendo el número entero en una cadena para contar fácilmente el número de dígitos e iterar a través de cada dígito.

Código y salida de ejecución

Verifique una serie de números para determinar si cumplen con los criterios matemáticos para los números de Armstrong.

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}")
Salida terminal
 153 -> Armstrong
 370 -> Armstrong
9474 -> Armstrong
 123 -> Not Armstrong

Implementación paso a paso

  • Investigación de teoría de números y ejercicios de lógica.
  • Tareas de programación de matemáticas en el aula
  • Programación recreativa

Preguntas frecuentes

¿Todos los números de un solo dígito son números de Armstrong?

Sí. Cualquier dígito elevado a la potencia de 1 es igual a sí mismo (por ejemplo, 5^1 = 5).

Temas relacionados