Problema
Un numero con k cifre è un numero di Armstrong se la somma di ciascuna cifra elevata alla potenza k è uguale al numero stesso. Ad esempio 153 = 1³ + 5³ + 3³.
Implementa is_armstrong(n).
Input
n: Un intero non negativo.
Output
Restituisci true se n è un numero di Armstrong.
Vincoli
0 ≤ n ≤ 10¹⁸
Esempi
Input:
n = 153
Output atteso:
expected = True
Input:
long long n = 153;
Output atteso:
bool expected = true;
Input:
long n = 153;
Output atteso:
bool expected = true;
Spiegazione
1³ + 5³ + 3³ = 1 + 125 + 27 = 153.
Input:
n = 10
Output atteso:
expected = False
Input:
long long n = 10;
Output atteso:
bool expected = false;
Input:
long n = 10;
Output atteso:
bool expected = false;
Spiegazione
1² + 0² = 1, che non è 10.
Come affrontarlo
Prova prima da solo, poi apri un suggerimento alla volta.
Suggerimento 1
Conta quante cifre ha il numero prima di sommare le potenze.
Suggerimento 2
Confronta il numero originale con la somma di ogni cifra elevata a quel conteggio.
Suggerimento 3
Ricorda che 0 è un caso speciale con una sola cifra.
Complessità attesa
tempo O(k), spazio aggiuntivo O(1)
Riferimenti
Questa sfida è adattata per CodeUtility. Segui la traccia e i vincoli sopra.