There are multiple ways by which we can calculate the nth digit of pi by using Arctan formula and Bailey–Borwein–Plouffe formula.
Chudnovsky Algorithm is a fast way of calculating the digits of pi and is similar to the arctan's formula.This formula is derived from the Ramanujan’s π formulae.
Here's the Formula :-
Simplifying further by solving the Fractional Power:
Dividing the series further into two parts a and b we get:
similarly,
we can calculate the next a term from the previous one, and the b terms from the a terms for simplifying the calculations.
Implementing the formula using Python
import math def sqrt(n,m): m1=10**16 m2=float((n*m1)//m)/m1 b=(int(m1*math.sqrt(m2))*m)//m1 n_m=n*m while True: a=b b=(b+n_m//b)//2 if b==a: break return b def power(n): if n==0: return 1 r=power(n//2) if n%2==0: return r*r return r*r*10 def pi(): m = power(100000) c = (640320**3)//24 n = 1 Ak = m Asum = m Bsum = 0 while Ak != 0 : Ak *= -(6*n-5)*(2*n-1)*(6*n-1) Ak //= n*n*n*c Asum += Ak Bsum += n * Ak n = n + 1 result = (426880*sqrt(10005*m,m)*m)//(13591409*Asum+545140134*Bsum) return result stringPi = str(pi()) n = int(input()) print(stringPi[n-1])
This was the solution for GeeksForGeeks Problem.
Top comments (0)