Hailstone sequence: Difference between revisions
Content added Content deleted
Line 6,009: | Line 6,009: | ||
<syntaxhighlight lang="kotlin"> |
<syntaxhighlight lang="kotlin"> |
||
fun hailstone(start: Int) = generateSequence(start) { n -> |
fun hailstone(start: Int) = generateSequence(start) { n -> |
||
when { |
|||
⚫ | |||
n == 1 -> null |
|||
n % 2 == 0 -> n / 2 |
|||
⚫ | |||
} |
|||
} |
} |
||
Line 6,015: | Line 6,019: | ||
val hail27 = hailstone(27).toList() |
val hail27 = hailstone(27).toList() |
||
println("The hailstone sequence for 27 has ${hail27.size} elements:\n$hail27") |
println("The hailstone sequence for 27 has ${hail27.size} elements:\n$hail27") |
||
val (n, length) = (1..100000).asSequence() |
val (n, length) = (1..100000).asSequence() |
||
.map { it to hailstone(it).count() } |
|||
.maxBy { it.second } |
|||
println("The number between 1 and 100000 with the longest hailstone sequence is $n, of length $length") |
println("The number between 1 and 100000 with the longest hailstone sequence is $n, of length $length") |
||
} |
} |