How would I convert a fraction to a continued fraction in Python? I tried looking around and found people using the Fraction module to do things similar to my problem, but I did not manage to modify them. An example with an image I found:
So if the input is 181 101
, then the output should be 1 1 3 1 4 4
. Thanks ahead!
Ok, let's start with some mathematics. The rationale behind that is simple. For the fraction n/d, the euclidian division is n = d * q + r with r < d
We simply have n/d = (d * q + r) / d = q + r/d with r < d
Now we iterate with 1/(r/d) = d/r to get your continued fraction
It will lead to a finished sequence of q, because the denominator of the sequence of fractions constitute a stricly decreasing integer sequence which will reach 0 in at most d operations.
A possible Python implementation could be:
We get as expected: