def test0064(self): from id_0064 import continued_fraction_sqrt sqrt2 = [1, 2, 2, 2] f = continued_fraction_sqrt(2) for i in range(len(sqrt2)): r = f.next() self.assertEqual(r, sqrt2[i]) sqrt7 = [2, 1, 1, 1, 4, 1, 1, 1, 4] f = continued_fraction_sqrt(7) for i in range(len(sqrt7)): r = f.next() self.assertEqual(r, sqrt7[i])
# return False # return True def solves_equation(x, y, D): return x*x - 1 == D*y*y if __name__ == '__main__': limit = 1000 D = 1 lst_D = [] while True: if not is_square(D): lst_D.append(D) if D >= limit: break D += 1 m = 0 for D in lst_D: f = continued_fraction_sqrt(D) lst = [] while True: r = f.next() lst.append(r) fr = generate_fraction(lst) if solves_equation(fr.numerator, fr.denominator, D): if fr.numerator > m: m = fr.numerator print "D = %d, x = %d, y = %d, m = %d" % (D, fr.numerator, fr.denominator, m) break print m