author | Christian Urban <christian.urban@kcl.ac.uk> |
Mon, 11 Apr 2022 23:55:27 +0100 | |
changeset 424 | daf561a83ba6 |
parent 140 | ecec79b9ab25 |
permissions | -rw-r--r-- |
127 | 1 |
// Part 1 about the 3n+1 conjecture |
2 |
//================================== |
|
11
417869f65585
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
3 |
|
127 | 4 |
object CW6a { |
123 | 5 |
|
127 | 6 |
def collatz(n: Long): Long = |
7 |
if (n == 1) 1 else |
|
8 |
if (n % 2 == 0) 1 + collatz(n / 2) else |
|
9 |
1 + collatz(3 * n + 1) |
|
15 | 10 |
|
11
417869f65585
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
11 |
|
127 | 12 |
def collatz_max(bnd: Long): (Long, Long) = { |
13 |
val all = for (i <- (1 to bnd.toInt).toList) yield collatz(i) |
|
18 | 14 |
val max = all.max |
127 | 15 |
(max, all.indexOf(max) + 1) |
11
417869f65585
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
16 |
} |
417869f65585
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
17 |
|
417869f65585
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
18 |
|
417869f65585
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
19 |
} |
417869f65585
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
20 |