def run(): sum = 0 for i in range(10001): if eu.is_square(i): continue cf = eu.sqrt_continued_fraction(i) if len(cf) % 2 == 0: sum += 1 return sum
def pell_min_x(d): ''' for a given d, this find a solution to Pell (x,y) that minimizes x. ''' cf = eu.sqrt_continued_fraction(d) tail_len = len(cf) - 1 x,y = eu.convergent(cf[:1]) if solves_pell(x,y,d): return (x,y) while True: for i in range(len(cf) - 1): x,y = eu.convergent(cf[:-1 * (tail_len - i)]) if solves_pell(x,y,d): return (x,y) cf += cf[-1 * tail_len:]