Module: Opérations sur les bits (C++)


Problem

13 /13


Professeur de mathématiques Yuri Petrovitch

Problem

Le professeur de mathématiques légendaire Yuri Petrovich a inventé un jeu amusant avec des nombres. À savoir, en prenant un nombre entier arbitraire, il le traduit en un système de nombres binaires, obtenant une séquence de zéros et de uns, en commençant par un. (Par exemple, nombre décimal\(19_{10} = 1\cdot2^4+0\cdot2^3+0\cdot2^2+1\cdot2^1+1\cdot2^0 \ )  dans le système binaire sera écrit comme 10011 2.) Ensuite, l'enseignant commence à décaler les chiffres du nombre binaire résultant dans un cycle (de sorte que le dernier chiffre devienne le premier et que tous les autres soient décalés d'une position vers la droite), en écrivant extraire les séquences résultantes de zéros et de uns dans la colonne — il a remarqué que quel que soit le choix du nombre initial, les séquences résultantes commencent à se répéter à partir d'un certain moment. Et, enfin, Yuri Petrovich trouve le maximum des nombres écrits et le traduit dans le système de nombre décimal, considérant ce nombre comme le résultat des manipulations effectuées. Ainsi, pour le nombre 19, la liste des séquences serait :
10011
11001
11100
01110
00111
10011

et le résultat du jeu sera donc un nombre \(1\cdot2^4+1\cdot2^3+1\cdot2^2+0\cdot2^1+0\cdot2^0 = 28_{ 10} \)

Étant donné que le jeu inventé avec des nombres sollicite de plus en plus l'imagination de l'enseignant, le distrayant ainsi du travail avec des écoliers très doués, on vous demande d'écrire un programme qui aiderait Yuri Petrovich à obtenir le résultat du jeu sans calculs manuels fastidieux.
 
Saisie :
Le fichier d'entrée contient un seul entier N (0<=N<=32767).
Sortie : 
Votre programme doit imprimer dans le fichier de sortie un seul entier égal au résultat du jeu.

Exemples
# Entrée Sortie
1 1 1