Skip to content

Instantly share code, notes, and snippets.

@hdf
hdf / bellard.py
Last active March 29, 2024 00:05
Bellard's formula for calculating PI in Python
import sys
from decimal import Decimal, getcontext
k = int(sys.argv[1]) if len(sys.argv) > 1 else 70
def bellard(n):
getcontext().prec = n + 1
return Decimal(1.0/(2**6)) * sum([Decimal(-1)**k/(1024**k) * (Decimal(256)/(10*k+1) + Decimal(1)/(10*k+9) - Decimal(64)/(10*k+3) - Decimal(32)/(4*k+1) - Decimal(4)/(10*k+5) - Decimal(4)/(10*k+7) - Decimal(1)/(4*k+3)) for k in range(n)])
print(bellard(k))