import sys from math import floor def log2(x): """returns ceil(log2(x)))""" y = 0 while (1 << y) < x: y = y + 1 return y for q in range(1, 17 + 1): d = 5 ** q b = 127 + log2(d) t = 2 ** b c = t // d + 1 assert c < 2 ** 128 assert c >= 2 ** 127 K = 2 ** 127 if not (c * K * d <= (K + 1) * t): print(q) top = floor(t / (c * d - t)) sys.exit(-1) for q in range(18, 344 + 1): d = 5 ** q b = 64 + 2 * log2(d) t = 2 ** b c = t // d + 1 assert c > 2 ** (64 + log2(d)) K = 2 ** 64 if not (c * K * d <= (K + 1) * t): print(q) top = floor(t / (c * d - t)) sys.exit(-1) print("all good")