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.
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.
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 ArmstrongImplementazione 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).