master amadaluzia/rosetta-collatz / typescript / src / index.ts
 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();