Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def propagate(root):
- approximate, numerator, period, seen = int(root**0.5), 1, 0, []
- modifier = approximate
- while True:
- denominator = root - modifier**2
- denominator /= numerator
- modifier *= -1
- modifier -= int((modifier+approximate)/denominator)*denominator
- numerator = denominator
- if [numerator, denominator, modifier] in seen:
- return period % 2 == 1
- period += 1
- seen.append([numerator, denominator, modifier])
- answer = 0
- testlist = [x for x in range(2, 10**4+1) if int(x**0.5) != x**0.5]
- for x in testlist:
- if propagate(x):
- answer += 1
- print(answer)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement