40 lines
897 B
Plaintext
40 lines
897 B
Plaintext
$ include "seed7_05.s7i";
|
|
include "bigint.s7i";
|
|
|
|
const proc: main is func
|
|
local
|
|
var bigInteger: q is 1_;
|
|
var bigInteger: r is 0_;
|
|
var bigInteger: t is 1_;
|
|
var bigInteger: k is 1_;
|
|
var bigInteger: n is 3_;
|
|
var bigInteger: l is 3_;
|
|
var bigInteger: nn is 0_;
|
|
var bigInteger: nr is 0_;
|
|
var boolean: first is TRUE;
|
|
begin
|
|
while TRUE do
|
|
if 4_ * q + r - t < n * t then
|
|
write(n);
|
|
if first then
|
|
write(".");
|
|
first := FALSE;
|
|
end if;
|
|
nr := 10_ * (r - n * t);
|
|
n := 10_ * (3_ * q + r) div t - 10_ * n;
|
|
q *:= 10_;
|
|
r := nr;
|
|
flush(OUT);
|
|
else
|
|
nr := (2_ * q + r) * l;
|
|
nn := (q * (7_ * k + 2_) + r * l) div (t * l);
|
|
q *:= k;
|
|
t *:= l;
|
|
l +:= 2_;
|
|
incr(k);
|
|
n := nn;
|
|
r := nr;
|
|
end if;
|
|
end while;
|
|
end func;
|