def main(): max_d, max_x = 0, 0 for d in xrange(2, 1001): for x, y in continued_fraction(d): if x ** 2 - d * y ** 2 == 1: if x > max_x: max_x = x max_d = d break print max_d
def solve_diophantine_equation(D): n = 0 expansion = continued_fraction(D) while True: frac = approximation(expansion, n) x = frac.numerator y = frac.denominator if x**2 - D * y**2 == 1: return x, y break n += 1
def main(): print sum( [1 for i in [max(0, len([i for i in continued_fraction(n, True)]) - 1) for n in xrange(2, 10001)] if i % 2 == 1] )