with Ada.Text_IO, Ada.Calendar;
use Ada.Calendar;
procedure piestimate is
start : Time := Clock;
type partArray is array (0..2800) of Integer;
part : partArray := (others => 2000);
i,k,b,c,d : Integer;
count : Integer := 0;
pi : array(0..2800/14) of Integer;
tmd : Duration;
begin
c := 0;
k := 2800;
while k > 0 loop
d := 0;
i := k;
loop
d := d + part(i)*10000;
b := 2 * i - 1;
part(i) := d mod b;
d := d / b;
i := i - 1;
if i = 0 then
exit;
end if;
d := d * i;
end loop;
pi(count) := c + d / 10000;
count := count + 1;
--Ada.Text_IO.Put(Integer'Image(c + d / 10000));
c := d mod 10000;
k := k - 14;
end loop;
tmd := Clock - start;
for j in 0..2800/14 - 1 loop
Ada.Text_IO.Put(Integer'Image(pi(j)));
end loop;
Ada.Text_IO.New_Line;
Ada.Text_IO.Put("Time: " & Duration'Image(tmd));
end piestimate;
????