Esse laço sempre termina?
Escolha um inteiro positivo n e execute:
- Se
nfor par, divida-o por 2. - Se
nfor ímpar, substitua-o por3*n + 1. - Repita até chegar a 1.
Para n = 6:
6 → 3 → 10 → 5 → 16 → 8 → 4 → 2 → 1
Uma implementação em Python:
def transformar(n):
while n != 1:
n = n // 2 if n % 2 == 0 else 3 * n + 1
return n
Desafio: prove que essa função termina para todo inteiro positivo ou encontre um valor para o qual ela nunca termine. Testar muitos valores não demonstra a conjectura. E uma execução demorada, por si só, não constitui um contraexemplo.