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.
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}") 153 -> Armstrong
370 -> Armstrong
9474 -> Armstrong
123 -> Not ArmstrongImplementaçã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).