La Seqüència de Collatz


Enviar solució

Punts: 5
Temps Límit: 1.0s
Límit de memòria: 64M

Autor/a:
tipus del problema
Bucles simples, Strings
Categoria
Codejam
Llenguatges permesos
C, C#, C++, Haskell, Java, Kotlin, Python

aireacondicionat

Aquest repte té bojos als matemàtics des de fa anys. Es tracta de la famosa seqüència de Collatz, també coneguda com “el problema del 3n+1”.

El que és graciós d’aquest problema és que ningú ha pogut demostrar matemàticament per què aplicant la seqüència sempre s’arriba a 1.

Tot comença amb un nombre enter positiu. El sistema funciona així:

  • Si el nombre és parell: el dividim entre 2
  • Si el nombre és senar: el multipliquem per 3 i li sumem 1
  • Repetim aquestes operacions amb els diferents resultats i tard o d’hora arribarem al nombre 1

Heu de crear un programa que calculi aquesta seqüència a partir d’un nombre. Per exemple:

  • Entrada: 6
  • Sortida: 6-3-10-5-16-8-4-2-1
  • Pas per pas:
    Copy
    6/2=3
    3x3+1=10
    10/2=5 
    5x3+1=16 
    16/2=8
    8/2=4
    4/2=2
    2/2=1

Entrada

La primera línia és el nombre de casos a tractar. Cada cas consta d'una única línia que serà un nombre enter positiu.

Sortida

Una seqüència de nombres generada separada per guions.

Exemple d'Entrada

Copy
2
6                     
11

Exemple de Sortida

Copy
6-3-10-5-16-8-4-2-1
11-34-17-52-26-13-40-20-10-5-16-8-4-2-1

Comentaris

En aquests moments no hi ha comentaris.