1. Есть
2.
3. n - заданное число, y - факториал числа, i - счётчик
4. Прил.
5.
var
y: System.uint64; //Большая цифра же и положительная
n, i: byte; //Нет смысла большие числа брать слишком, переполнение будет
begin
readln(n); //Принимаем число...
y := 1;
i := 1;
repeat
y := y * i; //...и умножаем такое-то количество раз
i := i + 1;
until i > n;
if (y = 0) then //Выводим, предусмотрев переполнение
writeln('Слишком большая цЫферка')
else
writeln(y);
end.