Conjectura de Collatz

Uma sequência de Collatz é gerada assim: comece com um número positivo. Se ele for par, divida-o por dois. Se for ímpar, multiplique-o por três e some um. Repita o processo com o número obtido. A conjectura de Collatz afirma que toda sequência acaba chegando a 1 (se continuar depois de 1, a sequência 4, 2, 1 se repetirá indefinidamente).

O comprimento da sequência desde o número inicial até 1 pode variar bastante.

Crie uma função que receba um número e retorne um registro CollatzResult com dois valores: a quantidade de valores da sequência de Collatz desde o número inicial até 1, incluindo ambos, e o maior número alcançado.

Exemplos

collatz(2) ➞ (2, 2)
// sequência = [2, 1]

collatz(3) ➞ (8, 16)
// sequência = [3, 10, 5, 16, 8, 4, 2, 1]

collatz(7) ➞ (17, 52)
// sequência = [7, 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1]

collatz(8) ➞ (4, 8)
// sequência = [8, 4, 2, 1]

Notas

Bônus (improvável): encontre um número inicial positivo que não chegue a 1 e garanta um lugar na história da matemática, além de um prêmio em dinheiro.

Exemplo em Java

assertEquals(new CollatzResult(8, 16), Program.collatz(3));