En este programa, aprenderá a mostrar todos los números de Armstrong entre dos intervalos dados, bajo y alto, en Kotlin.
Un entero positivo se llama número de Armstrong de orden n si
abcd… = a n + b n + c n + d n +…
En el caso de un número Armstrong de 3 dígitos, la suma de los cubos de cada dígito es igual al número en sí. Por ejemplo:
153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3 // 153 es un número de Armstrong.
Este programa se basa en el concepto de cómo verificar si un entero es un número de Armstrong o no.
Ejemplo: números de Armstrong entre dos enteros
fun main(args: Array) ( val low = 999 val high = 99999 for (number in low + 1… high - 1) ( var digits = 0 var result = 0 var originalNumber = number // number of digits calculation while (originalNumber != 0) ( originalNumber /= 10 ++digits ) originalNumber = number // result contains sum of nth power of its digits while (originalNumber != 0) ( val remainder = originalNumber % 10 result += Math.pow(remainder.toDouble(), digits.toDouble()).toInt() originalNumber /= 10 ) if (result == number) print("$number ") ) )
Cuando ejecute el programa, la salida será:
1634 8208 9474 54748 92727 93084
En el programa anterior, se comprueba cada número entre el intervalo alto y bajo dado.
Después de cada verificación, el número de dígitos y el resultado de la suma se restablecen a 0.