﻿procedure PowS(x: real; i: integer; var s1: real);
begin
  var p := 1.0;
  for var j := 1 to i do
    p *= x;
  s1 := s1 + p / i;
end;

procedure RowSum(x: real; var s: real; var Count: integer);
var
  s1, e: real;
  i: integer;
begin
  s := 0.0;
  s1 := 0.0;
  Count := 0;
  e := 1e-6;
  i := 1;
  while True do
  begin
    PowS(x, i, s1);
    if Abs(s1 * 2 - s) < e then break;
    s := s1 * 2;
    Count += 1;
    i += 1
  end;
end;

var
  x1, x2, dx, s: real;
  Count: integer;

begin
  x1 := 0.05;
  x2 := 0.95;
  dx := 0.05;
  Writeln('  x' + ' ' * 6 + 'F(x)' + ' ' * 5 + 'N');
  while x1 < x2 do
  begin
    RowSum(x1, s, Count);
    Writeln(x1:5:2, s:10:6, Count:4);
    x1 += dx
  end
end.