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));