Befunge-98 (PyFunge), 120 bytes
cf*10p'<20p11>00p1+:30p:::*+39**6+:30g39**c-00g*10gv
>:2*1-*00g*a*^
^:p02*g02p01*a*-*g02\+g01*g00-2*5g03,+*86:/*5g02+*5<
Pruébalo en línea!
Esto es límite en términos del límite de tiempo. 10,000 dígitos toman alrededor de 11 segundos en mi computadora portátil, pero estoy seguro de que debe haber una PC "razonable" que pueda hacerlo más rápido que eso.
Sin embargo, si lo está probando en TIO, tenga en cuenta que no devolverá nada hasta que alcance el límite de tiempo de 60 segundos, ya que el algoritmo está diseñado para seguir funcionando para siempre. Sin embargo, para entonces tendrás más de 10,000 dígitos.
Estoy usando el algoritmo de espita Jeremy Gibbons, que creo que es el mismo que la mayoría de las otras respuestas aquí. Sin embargo, tenga en cuenta que esto depende de que el intérprete tenga celdas de memoria de precisión arbitrarias, y la única implementación que conozco que admite es PyFunge .
Explicación
cf*10p Initialise r to 180.
'<20p Initialise t to 60.
11 Initialise i and q on the stack to 1.
> Start of the main loop.
00p Save the current value of q in memory.
1+:30p Increment i and save a copy in memory.
:::*+39**6+ Calculate u = 27*(i*i+i)+6.
: Make a duplicate, since we'll need two copies later.
30g39**c-00g*10gv Calculate y = (q*(27*i-12)+5*r)/(5*t).
/*5g02+*5<
,+*86: Convert y to a character so we can output it.
*a*-*g02\+g01*g00-2*5g03 Calculate r = 10*u*(q*(i*5-2)+r-y*t)
p01 Save the updated r.
*g02 Calculate t = t*u
p02 Save the updated t.
>:2*1-*00g*a* Calculate q = 10*q*i*(i*2-1).
^:
^ Return to the start of the main loop.