Для целесообразности вместо корня из 1 заранее используется 1 (поскольку нет нужды вычислять).--- КОД ПРОГРАММЫ НИЖЕ ---// Проверено в PascalABC.NET (версия 3.2, сборка 1363)program zz;var n, i, u, d, f, c, ff, cc: integer; y: real;procedure GetDiv();begin ff := f; cc := c; d := 0; while cc > 0 do begin d := d + ff; ff := ff + 1; cc := cc - 1; end;end;function Facto(num: integer): integer;var ff, fi: integer;begin ff := 1; for fi := 2 to num do ff := ff * fi; Facto := ff; end;begin write('n = '); readln(n); y := 0; f := 2; c := 2; for i := 1 to n do begin u := Facto( n - (i - 1) ); if i = 1 then d := 1 else begin GetDiv(); f := ff + 1; c := c + 1; end; y := y + (u / d); end; writeln('y = ', y);end.