Munchausen numbers: Difference between revisions

Added Kotlin
(Added Kotlin)
Line 571:
{{Out}}
<lang JavaScript>[1, 3435]</lang>
 
=={{header|Kotlin}}==
As it doesn't take long to find all 4 known Munchausen numbers, we will test numbers up to 500 million here rather than just 5000:
<lang scala>// version 1.0.6
 
val powers = IntArray(10)
 
fun isMunchausen(n: Int): Boolean {
if (n < 0) return false
var sum = 0L
var nn = n
while (nn > 0) {
sum += powers[nn % 10]
if (sum > n.toLong()) return false
nn /= 10
}
return sum == n.toLong()
}
 
fun main(args: Array<String>) {
// cache n ^ n for n in 0..9, defining 0 ^ 0 = 0 for this purpose
for (i in 1..9) powers[i] = Math.pow(i.toDouble(), i.toDouble()).toInt()
 
// check numbers 0 to 500 million
println("The Munchausen numbers between 0 and 500 million are:")
for (i in 0..500000000) if (isMunchausen(i))print ("$i ")
println()
}</lang>
 
{{out}}
<pre>
The Munchausen numbers between 0 and 500 million are:
0 1 3435 438579088
</pre>
 
=={{header|Lua}}==
9,485

edits