29 lines
587 B
Plaintext
29 lines
587 B
Plaintext
procedure pi (q, r, t, k, n, l)
|
|
first := "yes"
|
|
repeat { # infinite loop
|
|
if (4*q+r-t < n*t) then {
|
|
suspend n
|
|
if (\first) := &null then suspend "."
|
|
# compute and update variables for next cycle
|
|
nr := 10*(r-n*t)
|
|
n := ((10*(3*q+r)) / t) - 10*n
|
|
q *:= 10
|
|
r := nr
|
|
} else {
|
|
# compute and update variables for next cycle
|
|
nr := (2*q+r)*l
|
|
nn := (q*(7*k+2)+r*l) / (t*l)
|
|
q *:= k
|
|
t *:= l
|
|
l +:= 2
|
|
k +:= 1
|
|
n := nn
|
|
r := nr
|
|
}
|
|
}
|
|
end
|
|
|
|
procedure main ()
|
|
every (writes (pi (1,0,1,1,3,3)))
|
|
end
|