Esempio n. 1
0
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
Esempio n. 2
0
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:]