Шукати в цьому блозі

Циклічні зсуви

Запишемо ціле десяткове число n у двійковій системі і утворимо всі ліві циклічні зсуви числа n, при яких перша цифра числа переноситься в кінець числа.
Наприклад, якщо n = 11, в двійковій системі буде 1011, його циклічні зсуви: 0111111011011011. Максимальне значення m з усіх отриманих у такий спосіб чисел буде мати число 11102 = 1410.
Для заданого числа n визначити максимальне значення m.

Вхідні дані

Єдине число n (1 ≤ n ≤ 2 ·109).

Вихідні дані

Шукане число m.
x=int(input("")) c=[] x1=x while x1>=1: c.append(x1%2) x1=x1//2 c.reverse() kil=0 max=x while kil<len(c): kil=kil+1 n=0 t=c[0] while n<len(c)-1: c[n]=c[n+1] n=n+1 c[n]=t chyslo=0 st=len(c)-1 q=0 while q<len(c): chyslo=chyslo+c[q]*2**st st=st-1 q=q+1 if max<chyslo: max=chyslo print(max)