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