# reverse1 
# Fig. 16.1 
#input: 1234567 or 85

def f(n):
  if n < 2:
    return n
  elif (n % 2 == 0):  # even
    return f(n//2)
  else: 
    return f((n-1)//2) + f((n+1)//2)

n = int(input("n=? "))
fn = f(n)
print(f"n: {n}; f({n}): {fn}")
u = 0
while n > 0:
  u = u*2 + n%2
  n = n//2
fu = f(u)
print(f"u: {u}; f({u}): {fu}")
print("Equal?", fn == fu)
