1export function collatz(n: number): number {
2 switch (n % 2) {
3 case 0:
4 return Math.floor(n / 2)
5 default:
6 return 3 * n + 1;
7 }
8}
9
10export function collatzSequence(n: number): string {
11 let buffer = new String();
12 buffer += `${n}: `;
13 for (let i = n; i != 1; i = collatz(i))
14 buffer += `${i}, `;
15 buffer += "1";
16 return buffer.toString();
17}
18
19function main() {
20 let buffer = new Array<string>();
21 for (let i = 1; i <= 10_000; i++)
22 buffer.push(`${collatzSequence(i)}`);
23 console.log(buffer.join("\n"));
24}
25
26main();