All pastes #192587 Raw Edit

Miscellany

public python v1 · immutable
·published 2006-10-06 01:55 UTC
rendered paste body
#!/usr/bin/env python# Written by Jason Jung <jrjung@gmail.com># Last modified: 2006.10.04# This is a simple script that uses the formula# pi = 16 * arctan(5, y) - 4 * arctan(239, y)# to calculate the value of Pi to any number of digits# The formulas for Pi were supplied by works of# Carey Bloodworth and the users of Wikipedia# USAGE: ./machin.py <number of digits to calculate># TEST RUN TIME 1,000,000 DIGITS#    real    1388m51.658s#    user    1223m32.380s#    sys     120m20.907s# OS: Linux 2.6.15-26-386/i686# CPU: mobile AMD Athlon(tm) 4 Processor (500.095 MHz)def arctan(x, y):  sum = xpow = y // x  z = 3  sign = -1  while 1:    xpow = xpow // (x * x)    term = xpow // z    if not term:      break    sum += sign * term    sign = -sign    z += 2  return sumdef pi(n):  y = 10**(n + 10)  pi = 16 * arctan(5, y) - 4 * arctan(239, y)  return pi // 10**10if __name__ == '__main__':  from sys import argv  print pi(int(argv[1]))