Перевод на Free Pascal: var i, n: integer;
f: int64 = 1;
begin
readln
;
for i := 1 to n do f := f * i;
writeln(f)
end. Так будет работать точно для всех натуральных n до n=20 включительно. То же самое, но уже приближённо для больших n: var i, n: integer;
f: real = 1;
begin
readln
;
for i := 1 to n do f := f * i;
writeln(f)
end. Так нормально работает c n до ста с чем-то. В Pascal abc.net, где есть спецтип целых чисел любой длины, можно сделать программу для любого натурального n, если, конечно, у компьютера для этого памяти хватит, а то ведь факториал - это варианта (функция целочисленного аргумента) с ростом по экспоненте с обострением...