Cálculo de Python pi?

Sou iniciante em python e quero calcular pi. Tentei usar o algoritmo de Chudnovsky porque ouvi dizer que é mais rápido que outros algoritmos.

Este é o meu 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 alguma razão, esse código gera o valor máximo de pi até apenas 15 casas decimais em comparação com o valor aceitável. Eu tentei resolver isso aumentando o valor da precisão; isso aumenta o número de dígitos, mas apenas os 15 primeiros ainda são precisos. Tentei mudar a maneira como calcula o algoritmo e também não funcionou. Então, minha pergunta é:existe algo que pode ser feito com esse código para torná-lo muito mais preciso ou eu precisaria usar outro algoritmo? Gostaria muito de receber ajuda com isso porque não sei como operar com tantos dígitos em python. Gostaria de poder controlar o número de dígitos (corretos) determinados e exibidos pelo programa - sejam 10, 100, 1000, etc.

questionAnswers(3)

yourAnswerToTheQuestion