Problème
Un nombre à k chiffres est un nombre d'Armstrong si la somme de chacun de ses chiffres élevés à la puissance k est égale au nombre lui-même. Par exemple, 153 = 1³ + 5³ + 3³.
Implémentez is_armstrong(n).
Entrée
n : Un entier non négatif.
Sortie
Retournez true si n est un nombre d'Armstrong.
Contraintes
0 ≤ n ≤ 10¹⁸
Exemples
Entrée :
n = 153
Sortie attendue :
expected = True
Entrée :
long long n = 153;
Sortie attendue :
bool expected = true;
Entrée :
long n = 153;
Sortie attendue :
bool expected = true;
Explication
1³ + 5³ + 3³ = 1 + 125 + 27 = 153.
Entrée :
n = 10
Sortie attendue :
expected = False
Entrée :
long long n = 10;
Sortie attendue :
bool expected = false;
Entrée :
long n = 10;
Sortie attendue :
bool expected = false;
Explication
1² + 0² = 1, ce qui n'est pas égal à 10.
Comment l'aborder
Essayez d'abord seul, puis ouvrez les indices un par un.
Indice 1
Comptez d’abord combien de chiffres contient le nombre avant de sommer les puissances.
Indice 2
Comparez le nombre original avec la somme de chaque chiffre élevé à ce nombre de chiffres.
Indice 3
N’oubliez pas que 0 est un cas particulier à un seul chiffre.
Complexité attendue
temps O(k), espace supplémentaire O(1)
Références
Ce défi a été adapté pour CodeUtility. Suivez l'énoncé et les contraintes ci-dessus.