{$N+}               { Wlaczenie koprocesora arytmetycznego }
PROGRAM Silnie;

USES Crt;

VAR n  : Integer;
    Zn : Char;

FUNCTION Silnia1 (n : Integer) : Extended;
Var i     : Integer;
    Wynik : Extended;
Begin
  Wynik:=1;
  For i:=1 To n Do Wynik:=Wynik*i;
  Silnia1:=Wynik;
End;

FUNCTION Silnia2 (n : Integer) : Extended;
Begin
  If n=1 Then Silnia2:=1 Else Silnia2:=n*Silnia2(n-1);
End;

BEGIN
  ClrScr;
  Write('Podaj liczbe dla ktorej obliczyc silnie : ');
  ReadLn(n);
  WriteLn('Silnia obliczona iteracyjnie   = ', Silnia1(n):3:0);
  WriteLn('Silnia obliczona rekurencyjnie = ', Silnia2(n):3:0);
  Zn:=ReadKey;
END.