Conjetura de Collatz

Una secuencia de Collatz se genera así: comienza con un número positivo. Si es par, divídelo entre dos. Si es impar, multiplícalo por tres y súmale uno. Repite el proceso con el número obtenido. La conjetura de Collatz afirma que toda secuencia llega finalmente a 1 (si se continúa después de 1, la secuencia 4, 2, 1 se repite indefinidamente).

La longitud de la secuencia desde el número inicial hasta 1 puede variar mucho.

Crea una función que reciba un número y devuelva un registro CollatzResult con dos valores: la cantidad de valores de la secuencia de Collatz desde el número inicial hasta 1, incluidos ambos, y el mayor número alcanzado.

Ejemplos

collatz(2) ➞ (2, 2)
// secuencia = [2, 1]

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

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

collatz(8) ➞ (4, 8)
// secuencia = [8, 4, 2, 1]

Notas

Bono (improbable): encuentra un número inicial positivo que no llegue a 1 y consigue un lugar en la historia de las matemáticas, además de un premio en efectivo.

Ejemplo en Java

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