Controllo numeri Armstrong Python

Verifica se un numero è un numero Armstrong (narcisistico) in cui la somma delle sue stesse cifre elevata alla potenza del numero di cifre è uguale al numero stesso.

Prova nell'editor

Panoramica

Un numero di Armstrong (noto anche come numero invariante digitale narcisistico o più perfetto) è un numero di n cifre uguale alla somma delle n-esime potenze delle sue cifre.

Ad esempio, 153 è un numero Armstrong a 3 cifre perché 1^3 + 5^3 + 3^3 = 153. Allo stesso modo, 9474 è un numero Armstrong a 4 cifre perché 9^4 + 4^4 + 7^4 + 4^4 = 9474.

Lo implementiamo in Python convertendo il numero intero in una stringa per contare facilmente il numero di cifre e scorrere ciascuna cifra.

Codice e output di esecuzione

Controlla una serie di numeri per determinare se soddisfano i criteri matematici per i numeri di Armstrong.

armstrong.py
Prova nell'editor
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}")
Uscita terminale
 153 -> Armstrong
 370 -> Armstrong
9474 -> Armstrong
 123 -> Not Armstrong

Implementazione passo dopo passo

  • Ricerche sulla teoria dei numeri ed esercizi di logica
  • Compiti di programmazione matematica in classe
  • Programmazione ricreativa

Domande frequenti

Tutti i numeri a una cifra sono numeri Armstrong?

Sì. Ogni singola cifra elevata alla potenza di 1 è uguale a se stessa (ad esempio, 5 ^ 1 = 5).

Argomenti correlati