#cas PiCalcZZ(k):= // 計算桁数 BEGIN local a,b,f,p,n,d,r; f:=ip(k/LOG(2)); // ループ回数 LOGは小文字だとLNなので大文字に a:=2; b:=1; // 分子:a 分母:b for n from f downto 1 step -1 DO a:=a*n; b:=b*(2*n+1); a:=a+2*b; end; n:=a; // 分子を取り出す d:=b; // 分母を取り出す r:=irem(n*10^k,d); // 剰余 p:=iquo((n*10^k)-r,d); // 分子から剰余を引いて割り切れるようにする return p; END; #end