diff options
author | Guido van Rossum <guido@python.org> | 1991-06-04 20:36:54 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 1991-06-04 20:36:54 (GMT) |
commit | ec758ead391daa2ce0e5697aa0e67ec3ba0f37af (patch) | |
tree | 7f2d186afd41d797882d5b5be3330e921804ebe9 /Demo/scripts/pi.py | |
parent | 0481447f4135c11d42ae25f55696af8e8d52fe74 (diff) | |
download | cpython-ec758ead391daa2ce0e5697aa0e67ec3ba0f37af.zip cpython-ec758ead391daa2ce0e5697aa0e67ec3ba0f37af.tar.gz cpython-ec758ead391daa2ce0e5697aa0e67ec3ba0f37af.tar.bz2 |
Initial revision
Diffstat (limited to 'Demo/scripts/pi.py')
-rwxr-xr-x | Demo/scripts/pi.py | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/Demo/scripts/pi.py b/Demo/scripts/pi.py new file mode 100755 index 0000000..5e19db6 --- /dev/null +++ b/Demo/scripts/pi.py @@ -0,0 +1,30 @@ +#! /usr/local/python + +# Print digits of pi forever. +# +# The algorithm, using Python's 'long' integers ("bignums"), works +# with continued fractions, and was conceived by Lambert Meertens. +# +# See also the ABC Programmer's Handbook, by Geurts, Meertens & Pemberton, +# published by Prentice-Hall (UK) Ltd., 1990. + +import sys + +def main(): + k, a, b, a1, b1 = 2l, 4l, 1l, 12l, 4l + while 1: + # Next approximation + p, q, k = k*k, 2l*k+1l, k+1l + a, b, a1, b1 = a1, b1, p*a+q*a1, p*b+q*b1 + # Print common digits + d, d1 = a/b, a1/b1 + #print a, b, a1, b1 + while d = d1: + # Use write() to avoid spaces between the digits + sys.stdout.write(`int(d)`) + # Flush so the output is seen immediately + sys.stdout.flush() + a, a1 = 10l*(a%b), 10l*(a1%b1) + d, d1 = a/b, a1/b1 + +main() |