program CalcoloFattoriale;
var
numero : longint;
function FattorialeRicorsivo (n: longint): longint;
begin
if n = 0 then
FattorialeRicorsivo := 1
else
FattorialeRicorsivo := n * FattorialeRicorsivo(n - 1)
end;
function FattorialeIterativo (n: longint): longint;
var
f, i : longint;
begin
f := 1;
for i := 1 to n do
f := f * i;
FattorialeIterativo := f
end;
begin
write('Inserisci un numero intero! ');
readln(numero);
writeln;
writeln('Fattoriale (calcolato con una funzione iterativa): ',
FattorialeIterativo(numero));
writeln('Fattoriale (calcolato con una funzione ricorsiva): ',
FattorialeRicorsivo(numero))
end.