A conjectura de Collatz postula que, se você pegar um número inteiro positivo, repita o seguinte algoritmo várias vezes:
if number is odd, then multiply by three and add one
if number is even, then divide by two
você acabará em 1. Parece sempre funcionar, mas nunca foi provado que sempre funciona.
Você já jogou golfe calculando quanto tempo leva para chegar a 1 , então pensei em mudar um pouco as coisas.
Começando com um número inteiro positivo, calcule quanto tempo leva para chegar a 1 (seu "tempo de parada"). Em seguida, encontre o tempo de parada desse número.
Repita até chegar a 1 ou até chegar ao limite totalmente arbitrário de 100 iterações. No primeiro caso, imprima quantas iterações foram necessárias. No último caso, imprima "Fail" ou outra saída consistente de sua escolha, desde que não seja um número inteiro 1≤n≤100
. Você não pode emitir uma sequência vazia para esta opção. A saída de um número inteiro fora do intervalo [1, 100], no entanto, é permitida.
Exemplos:
Input: 2
2->1
Output: 1
Input: 5
5->5->5->5->5->...
Output: Fail
Input: 10
10->6->8->3->7->16->4->2->1
Output: 8
Input: 100
100->25->23->15->17->12->9->19->20->7->16->4->2->1
Output: 13
Input: 10^100
10^100->684->126->108->113->12->9->19->20->7->16->4->2->1
Output: 13
Input: 12345678901234567890
12345678901234567890->286->104->12->9->19->20->7->16->4->2->1
Output: 11
Input: 1
--Depending on your code, one of two things may happen. Both are valid for the purposes of this question.
1
Output: 0
--Or:
1->3->7->16->4->2->1
Output: 6
Conforme calculei 10^100
e 12345678901234567890
usando um idioma que suporta apenas reais para esse tamanho, se o seu idioma for mais preciso, você poderá obter resultados diferentes para eles.
Pontuação
Como esse é o código-golfe , a resposta com a menor quantidade de bytes vence.