Lengths of preperiod and period of a rational number
I found something for Continued fractions, but I ask myself:
I there an easy way to get the lengths of preperiod and period of a rational number?
It seems for Rational numbers I can only use a.period()
, not a.preperiod()
.
For, say, 1/7 = 0.142857142857... I should get something like:
Length of preperiod: 0
Length of period: 6
a = 1/7
print(float(a))
print('a.period() gives me the length of the period:', a.period())
print('a.preperiod() does not work', #a.preperiod())
Out:
0.142857142857
a.period() gives me the length of the period: 6
a.preperiod() does not work
It's really not well-defined. For all you know, $0.142857142857=\frac{142857142857}{1000000000000}$, in which case the decimal expansion should be extended with $0$, so the period will be $1$ and the preperiod will be the place of the last non-zero digit.
@nbruin I posted an answer. ;)
Ah, I see
period
is a method on a rational number, not on a float. That makes perfect sense then. Apologies for the noise.