# collatz-q7
# Section 10, Q.7.c, p.42, p.256
# inputs: 10 40
# info: https://en.wikipedia.org/wiki/Collatz_conjecture

import matplotlib.pyplot as plt

def next(n):
  global count
  if n > 1:
    count += 1
    if (n%2 == 1):
      next(3*n + 1)
    else:
      next(n//2)

a,b = map(int, input("a b=? ").split())
xs = [i for i in range(a, b+1)]
ys = [0]*(b+1-a)
print("  a   count");
for i in range(a, b+1):
  count = 0
  next(i)
  ys[i-a] = count
  print(f"{i:3} {count:5}")
plt.plot(xs, ys)
plt.title('Collatz Sequence')
plt.show()

