Verificador de números Python Armstrong

Verifique se um número é um número Armstrong (narcisista) onde a soma de seus próprios dígitos elevada à potência do número de dígitos é igual ao próprio número.

Experimente no Editor

Visão geral

Um número Armstrong (também conhecido como número invariante digital narcisista ou mais-perfeito) é um número de n dígitos igual à soma das enésimas potências de seus dígitos.

Por exemplo, 153 é um número Armstrong de 3 dígitos porque 1 ^ 3 + 5 ^ 3 + 3 ^ 3 = 153. Da mesma forma, 9474 é um número Armstrong de 4 dígitos porque 9 ^ 4 + 4 ^ 4 + 7 ^ 4 + 4 ^ 4 = 9474.

Implementamos isso em Python convertendo o número inteiro em uma string para contar facilmente o número de dígitos e iterar cada dígito.

Saída de código e execução

Verifique uma série de números para determinar se eles atendem aos critérios matemáticos dos 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}")
Saída terminal
 153 -> Armstrong
 370 -> Armstrong
9474 -> Armstrong
 123 -> Not Armstrong

Implementação passo a passo

  • Pesquisa de teoria dos números e exercícios de lógica
  • Tarefas de programação matemática em sala de aula
  • Programação recreativa

Perguntas frequentes

Todos os números de um dígito são números Armstrong?

Sim. Qualquer dígito elevado à potência de 1 é igual a si mesmo (por exemplo, 5 ^ 1 = 5).

Tópicos Relacionados