Pseudo-seqüències de Collatz (1) P91173


Statement
 

pdf   zip

Definim seqüències semblants a les de Collatz a partir de dos paràmetres xx i yy. Donat un nombre nn, l’algorisme per obtenir el nombre següent és:

  • si nn és parell, passem a n/2+xn/2 + x;

  • altrament, passem a 3n+y3n + y.

La seqüència de Collatz estàndard es correspon a x=0x = 0 i y=1y = 1.

Donats xx, yy i un nombre inicial nn, calculeu la longitud del cicle al qual s’arriba aplicant l’algorisme anterior. Per exemple, si x=1x = 1, y=5y = 5 i n=8n = 8, llavors la seqüència definida és 8, 5, 20, 11, 38, 20, 11, 38, … així que el cicle té longitud 3.

Com que els números es poden fer molt grossos, i a més no tenim cap garantia matemàtica de que sempre s’arribi a un cicle, cal parar si en algun moment la seqüència arriba a un nombre més gran que 10610^6.

Entrada

L’entrada consisteix en diversos casos, cadascun amb tres naturals xx, yy i nn. Suposeu que tant xx com yy no superen 1000, que yy és senar (perquè la seqüència tingui alguna gràcia), i que la nn inicial no és més gran que 10610^6.

Sortida

Per a cada cas, escriviu la longitud del cicle al qual s’arriba, o bé el primer nombre que supera 10610^6 estrictament.

Public test cases
  • Input

    1 5 8
    0 5 0
    10 11 3
    7 3 6
    1 999 1000000
    433 805 215476
    0 1 333333
    

    Output

    3
    1
    1
    35
    1501002
    490
    3
    
  • Information
    Author
    Salvador Roura
    Language
    Catalan
    Other languages
    English
    Official solutions
    C++ Java Python
    User solutions
    C++ JavaScript Python