from lib_misc import product def get_irrational_fraction(digits_max): s = [] n = 1 digits = 0 while digits < digits_max: s.append(str(n)) digits += len(str(n)) n += 1 return "".join(s) def euler_040(): f = get_irrational_fraction(1000001) return product(map(int, [f[10**i - 1] for i in range(7)])) if __name__ == "__main__": print("e040.py: " + str(euler_040())) assert(euler_040() == 210)