import sympy limit = 100000000 printlimit = 10000 a = {} maxval = 0 def fill(a, n, recursive = False): global maxval if n in a: return descendant = 2*n + 1 if (sympy.isprime(descendant)): fill(a, descendant, recursive or n) a[n] = a[descendant] + 1 if not recursive: if a[n] > maxval: print('New record', n, a[n]) maxval = a[n] elif a[n] == maxval: print('Tied record', n, a[n]) else: a[n] = 0 for i in range(1, limit+1): fill(a, i) print("# b-file for A067849") for i in range(1, printlimit+1): print(i, a[i])