from math import isqrt
def frac(n):
a0 = isqrt(n)
seq = []
r, s = 0, 1
seen = set()
while not (r, s) in seen:
seen.add((r, s))
a = (r + a0) // s
r = a * s - r
s = (n - r**2) // s
seq.append(a)
return seq
from fractions import Fraction
def from_cfrac(xs):
f = Fraction(xs[-2])
for x in reversed(xs[:-2]):
f = Fraction(x) + 1 / f
return f
def solve(n):
cf = frac(n)
if len(cf) % 2 == 0:
cf.extend(cf[1:])
f = from_cfrac(cf)
N, D = f.numerator, f.denominator
return [N, D]
print(solve(61))
To embed this program on your website, copy the following code and paste it into your website's HTML: