In dit programma leer je alle armstrong-getallen tussen twee gegeven intervallen, laag en hoog, in Kotlin weer te geven.
Een positief geheel getal wordt een Armstrong-getal van de orde n als genoemd
abcd … = een n + b n + c n + d n + …
In het geval van een Armstrong-nummer van 3 cijfers, is de som van de kubussen van elk cijfer gelijk aan het nummer zelf. Bijvoorbeeld:
153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3 // 153 is een Armstrong-getal.
Dit programma is gebaseerd op het concept om te controleren of een geheel getal een Armstrong-getal is of niet.
Voorbeeld: Armstrong-nummers tussen twee gehele getallen
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 ") ) )
Wanneer u het programma uitvoert, is de uitvoer:
1634 8208 9474 54748 92727 93084
In het bovenstaande programma wordt elk getal tussen het opgegeven interval hoog en laag gecontroleerd.
Na elke controle worden het aantal cijfers en het somresultaat teruggezet op 0.