Module: Operaciones con bits (Python)


Problem

13 /13


Profesor de matemáticas Yuri Petrovich

Problem

El legendario maestro de matemáticas Yuri Petrovich ideó un juego divertido con números. Es decir, tomando un número entero arbitrario, lo traduce a un sistema numérico binario, obteniendo una secuencia de ceros y unos, comenzando con uno. (Por ejemplo, número decimal\(19_{10} = 1\cdot2^4+0\cdot2^3+0\cdot2^2+1\cdot2^1+1\cdot2^0 \ )  en sistema binario se escribirá como 10011 2.) Luego, el maestro comienza a cambiar los dígitos del número binario resultante en un ciclo (de modo que el último dígito se convierte en el primero, y todos los demás se desplazan una posición a la derecha), escribiendo las secuencias resultantes de ceros y unos en la columna — notó que independientemente de la elección del número inicial, las secuencias resultantes comienzan a repetirse a partir de un momento determinado. Y, finalmente, Yuri Petrovich encuentra el máximo de los números escritos y lo vuelve a traducir al sistema numérico decimal, considerando este número el resultado de las manipulaciones realizadas. Entonces, para el número 19, la lista de secuencias sería:
10011
11001
11100
01110
00111
10011

y el resultado del juego será por tanto un número \(1\cdot2^4+1\cdot2^3+1\cdot2^2+0\cdot2^1+0\cdot2^0 = 28_{ 10} \)

Dado que el juego inventado con números requiere cada vez más de la imaginación del maestro, lo que lo distrae de trabajar con escolares muy talentosos, se le pide que escriba un programa que ayude a Yuri Petrovich a obtener el resultado del juego sin tediosos cálculos manuales.
 
Entrada:
El archivo de entrada contiene un único entero N (0<=N<=32767).
Salida: 
Su programa debe imprimir en el archivo de salida un único número entero igual al resultado del juego.

Ejemplos
# Entrada Salida
1 1 1