Python pi cálculo?

Soy un principiante en python y quiero calcular pi. Intenté usar el algoritmo Chudnovsky porque escuché que es más rápido que otros algoritmos.

Este es mi código:

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)

Por alguna razón, este código produce la vakue de pi hasta solo 15 decimales en comparación con el valor aceptable. Traté de resolver esto aumentando el valor de precisión; esto aumenta el número de dígitos, pero solo los primeros 15 siguen siendo precisos. Intenté cambiar la forma en que calcula el algoritmo y tampoco funcionó. Entonces mi pregunta es,¿Hay algo que se pueda hacer con este código para hacerlo mucho más preciso o tendría que usar otro algoritmo? Agradecería ayuda con esto porque no sé cómo operar con tantos dígitos en Python. Me gustaría poder controlar el número de dígitos (correctos) determinados y mostrados por el programa, ya sea 10, 100, 1000, etc.

Respuestas a la pregunta(3)

Su respuesta a la pregunta