title: Python pi calculation?
body: <p>I am a python beginner and I want to calculate pi. I tried using the Chudnovsky algorithm because I heard that it is faster than other algorithms.</p>
  
  <p>This is my code:</p>
  
  <pre><code>from math import factorial
  from decimal import Decimal, getcontext
  
  getcontext().prec=100
  
  def calc(n):
      t= Decimal(0)
      pi = Decimal(0)
      deno= Decimal(0)
      k = 0
      for k in range(n):
          t = ((-1)**k)*(factorial(6*k))*(13591409+545140134*k)
          deno = factorial(3*k)*(factorial(k)**3)*(640320**(3*k))
          pi += Decimal(t)/Decimal(deno)                                   
      pi = pi * Decimal(12)/Decimal(640320**(1.5))
      pi = 1/pi
      return pi
  
  print calc(25)
  </code></pre>
  
  <p>For some reason this code yields the vakue of pi up to only 15 decimals as compared with the acceptable value. I tried to solve this by increasing the precision value; this increases the number of digits, but only the first 15 are still accurate. I tried changing the way it calculates the algorithm and it didn't work either. So my question is, <em>is there something that can be done to this code to make it much more accurate or would I have to use another algorithm?</em> I would appreciate help with this because I don't know how to operate with so many digits in python.  I would like to be able to control the number of (correct) digits determined and displayed by the program -- whether 10, 100, 1000, etc.</p>