Commit 4696c245 authored by Raymond Hettinger's avatar Raymond Hettinger

Update to use python ints and int/long unification.

parent 9c89e2c1
...@@ -8,27 +8,25 @@ ...@@ -8,27 +8,25 @@
# published by Prentice-Hall (UK) Ltd., 1990. # published by Prentice-Hall (UK) Ltd., 1990.
import sys import sys
from mpz import mpz
def main(): def main():
mpzone, mpztwo, mpzten = mpz(1), mpz(2), mpz(10) k, a, b, a1, b1 = 2, 4, 1, 12, 4
k, a, b, a1, b1 = mpz(2), mpz(4), mpz(1), mpz(12), mpz(4) while 1:
while 1: # Next approximation
# Next approximation p, q, k = k*k, 2*k+1, k+1
p, q, k = k*k, mpztwo*k+mpzone, k+mpzone a, b, a1, b1 = a1, b1, p*a+q*a1, p*b+q*b1
a, b, a1, b1 = a1, b1, p*a+q*a1, p*b+q*b1 # Print common digits
# Print common digits d, d1 = a/b, a1/b1
d, d1 = a/b, a1/b1 while d == d1:
while d == d1: output(d)
output(d) a, a1 = 10*(a%b), 10*(a1%b1)
a, a1 = mpzten*(a%b), mpzten*(a1%b1) d, d1 = a/b, a1/b1
d, d1 = a/b, a1/b1
def output(d): def output(d):
# Use write() to avoid spaces between the digits # Use write() to avoid spaces between the digits
# Use int(d) to avoid a trailing L after each digit # Use int(d) to avoid a trailing L after each digit
sys.stdout.write(`int(d)`) sys.stdout.write(`int(d)`)
# Flush so the output is seen immediately # Flush so the output is seen immediately
sys.stdout.flush() sys.stdout.flush()
main() main()
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment