.


           

x m,


k := -1;

repeat

eps := eps*10;

k := k + 1

until eps > 1;

t := k

end;

{----------------------------------------------------------------------------------------}

Function Extent_real(a, x : real) : real;

begin

Extent_real := exp(x*ln(a))

end;

{----------------------------------------------------------------------------------------}

Function G(x, eps : real) : real;

var

n : longint;

g1, gg : real;

begin

n := 1; gg := Extent_real((n + 1)/n, x)/(x*(x + n));

repeat

n := n + 1;

gg := gg*n*Extent_real((n + 1)/n, x)/(x + n);

n := n + 1;

g1 := gg*n*Extent_real((n + 1)/n, x)/(x + n)

until abs(g1 - gg) < eps;

G := gg

end;

{----------------------------------------------------------------------------------------}

Function Gamma(x, eps : real) : real;

begin

x := x - 1;

Gamma := x*G(x, eps)

end;

{----------------------------------------------------------------------------------------}

begin

write(' '); readln(x);

write(' '); readln(eps);

if (x < 2) and (x > 1) then gg := Gamma(x, eps)

else gg := G(x, eps);

writeln(' - ', gg:6:t(eps))

end.

x m,



( ),


. .

Function G_natural(m : integer) : longint;

var