Retour aux défis
Facile 0 résolus 0 % de réussite

Nombre d'Armstrong

Vérifiez si un nombre est égal à la somme de ses chiffres élevés à la puissance du nombre de chiffres.

Ce que vous allez apprendre

  • Compter les chiffres d'un nombre
  • Élever chaque chiffre au nombre de chiffres et les additionner
  • Comparer le résultat au nombre d'origine

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

Exemple 1
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.

Exemple 2
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.

Apprenez des autres

Solutions de la communauté

Aucune solution publiée pour l'instant. Résolvez ce défi pour partager la première.