示例#1
0
def solve_pell(d):
    '''x**2-d*y**2=1 の最小解を求める.
    √dの第i次連分数近似を p_i/q_i とすると, (pi, pi)で方程式の解になるものが最小(らしい).'''
    for frac in convergents(cont_frac_sqrt(d)):
        p = frac.numerator
        q = frac.denominator
        if p**2 - d*q**2 == 1: return (p, q)
示例#2
0
def main():
    for i, frac in enumerate(convergents(cont_frac_of_e())):
        if i == 99: break
    return digit_sum(frac.numerator)