program RecurseTest;

procedure Countdown(msg: string; n: integer);
begin
  if n > 0 then
  begin
    write(msg);
    write(n);
    writeln;
    Countdown(msg, n - 1);
  end;
end;

function Factorial(n: integer): integer;
begin
  if n <= 1 then
    Factorial := 1
  else
    Factorial := n * Factorial(n - 1);
end;

var
  i: integer;
begin
  Countdown('Count: ', 5);
  writeln;
  for i := 1 to 10 do
  begin
    write('Factorial(');
    write(i);
    write(') = ');
    writeln(Factorial(i));
  end;
end.