Sigui n qualsevol natural estrictament positiu. Considereu el procés següent: Si n és parell, dividiu-lo per dos. Altrament, multipliqueu-lo per 3 i sumeu-li 1. Quan arribeu a 1, pareu.
Per exemple, començant en n=3, s’obté la seqüència de Collatz S(3): 3,10,5,16,8,4,2,1. La mida d’aquesta seqüència és 7, ja que han calgut 7 iteracions del procés descrit més amunt per arribar fins a 1.
Des de l’any 1937 es conjectura que aquest procés acaba per a qualsevol n inicial, encara que no ho ha sabut demostrar ningú. En aquest problema suposarem que la conjectura és certa.
Escriu una funció mida_collatz(n) que, donat un natural n > 0, retorni la mida de la seqüència de Collatz corresponent a n, és a dir, quantes iteracions del procés descrit més amunt calen per arribar a 1.
Entrada
La funció té un nombre natural estrictament positiu com a paràmetre.
Observacions
Un cop definida la funció, en provar-la al REPL de Python us hauria de sortir el mateix que podeu observar més avall.
>>> mida_collatz(12) 9 >>> mida_collatz(3) 7 >>> mida_collatz(19) 20 >>> mida_collatz(27) 111 >>> mida_collatz(97) 118 >>> mida_collatz(871) 178 >>> mida_collatz(1) 0 >>> mida_collatz(2) 1 >>>