• Python
  • 05. Laços de Repetição (while)
  • Sequência de Collatz Mais Longa

Sequência de Collatz Mais Longa#

Considere a seguinte sequência iterativa definida para os números inteiros positivos:

\[ \begin{aligned} n &\rightarrow n/2 (n\text{ é par}) \\\\ n & \rightarrow 3n+1 (n\text{ é ímpar}) \end{aligned} \]

Usando a regra acima e começando com o número 13, geramos a seguinte sequência:

\[ 13 \rightarrow 40 \rightarrow 20 \rightarrow 10 \rightarrow 5 \rightarrow 16 \rightarrow 8 \rightarrow 4 \rightarrow 2 \rightarrow 1 \]

Percebe-se que essa sequência (começando em 13 e terminando em 1) contém 10 termos. Apesar de ainda não ter sido provado (Problema de Collatz), acredita-se que a sequência sempre termina em 1, independentemente do número inicial.

Faça um programa que recebe um número inteiro n e determina qual número positivo inicial menor ou igual a n que gera a sequência de Collatz mais longa. Seu programa deve imprimir esse número.

Nota: Uma vez que a sequência começa os números podem passar de n.

Adaptado de https://projecteuler.net/problem=14