Programme Kotlin pour vérifier le numéro Armstrong

Dans ce programme, vous apprendrez à vérifier si un nombre donné est un nombre armstrong ou non. Vous apprendrez à faire cela en utilisant une boucle while dans Kotlin.

Un entier positif est appelé un nombre Armstrong d'ordre n si

abcd… = a n + b n + c n + d n +…

Dans le cas d'un nombre Armstrong de 3 chiffres, la somme des cubes de chaque chiffre est égale au nombre lui-même. Par exemple:

 153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3 // 153 est un nombre Armstrong. 

Exemple 1: Vérifiez le numéro Armstrong pour un numéro à 3 chiffres

 fun main(args: Array) ( val number = 371 var originalNumber: Int var remainder: Int var result = 0 originalNumber = number while (originalNumber != 0) ( remainder = originalNumber % 10 result += Math.pow(remainder.toDouble(), 3.0).toInt() originalNumber /= 10 ) if (result == number) println("$number is an Armstrong number.") else println("$number is not an Armstrong number.") ) 

Lorsque vous exécutez le programme, la sortie sera:

 371 est un nombre Armstrong.
  • Premièrement, la valeur d'un nombre donné (number) est stockée dans une autre variable entière, originalNumber. En effet, nous devons comparer les valeurs du nombre final et du nombre d'origine à la fin.
  • Ensuite, une boucle while est utilisée pour boucler sur originalNumber jusqu'à ce qu'il soit égal à 0.
    • À chaque itération, le dernier chiffre de num est stocké dans le reste.
    • Ensuite, le reste est alimenté par 3 (nombre de chiffres) en utilisant la Math.pow()fonction et ajouté au résultat.
      Ici, le reste est converti en Doublecar pown'accepte que les Doubleparamètres, et sa valeur est à nouveau reconvertie enInt
    • Ensuite, le dernier chiffre est supprimé de originalNumber après la division par 10.
  • Enfin, le résultat et le nombre sont comparés. S'il est égal, c'est un nombre armstrong. Sinon, ce n'est pas le cas.

Voici le code Java équivalent: Programme Java pour vérifier le numéro Armstrong

Exemple 2: Vérifiez le numéro Armstrong pour n chiffres

 fun main(args: Array) ( val number = 1634 var originalNumber: Int var remainder: Int var result = 0 var n = 0 originalNumber = number while (originalNumber != 0) ( originalNumber /= 10 ++n ) originalNumber = number while (originalNumber != 0) ( remainder = originalNumber % 10 result += Math.pow(remainder.toDouble(), n.toDouble()).toInt() originalNumber /= 10 ) if (result == number) println("$number is an Armstrong number.") else println("$number is not an Armstrong number.") )

Dans ce programme, nous avons utilisé deux boucles while. La première boucle while est utilisée pour compter le nombre de chiffres dans le nombre.

Ensuite, originalNumber est restauré au nombre donné.

La deuxième boucle while vérifie ensuite si le nombre est armstrong ou non.

Visitez cette page pour savoir comment afficher tous les nombres armstrong entre deux intervalles.

Articles intéressants...