author | Christian Urban <urbanc@in.tum.de> |
Mon, 15 Jan 2018 23:15:34 +0000 | |
changeset 167 | 349d706586ef |
parent 144 | 716042628398 |
child 171 | 4c9497ab5caa |
permissions | -rw-r--r-- |
127 | 1 |
// Part 1 about the 3n+1 conjecture |
2 |
//================================== |
|
167 | 3 |
package CW6a |
4 |
||
126 | 5 |
|
127 | 6 |
object CW6a { |
126 | 7 |
|
127 | 8 |
def collatz(n: Long): Long = |
9 |
if (n == 1) 1 else |
|
10 |
if (n % 2 == 0) 1 + collatz(n / 2) else |
|
11 |
1 + collatz(3 * n + 1) |
|
126 | 12 |
|
13 |
||
127 | 14 |
def collatz_max(bnd: Long): (Long, Long) = { |
15 |
val all = for (i <- (1 to bnd.toInt).toList) yield collatz(i) |
|
126 | 16 |
val max = all.max |
127 | 17 |
(max, all.indexOf(max) + 1) |
126 | 18 |
} |
19 |
||
20 |
||
127 | 21 |
} |
126 | 22 |
|
167 | 23 |