№1
Факториал нуля равен единице. Если N по условию может быть отрицательным, сразу после ввода следует это проверить.
Будем хранить ответ в переменной fc с начальным значением 1. Будем перебирать все числа от 2 до N и домножать fc на каждое из них.
Код
var
n, i, fc: longint;
begin
read(n);
fc := 1;
for i := 2 to n do
fc := fc * i;
writeln(fc);
end.
№2
Используем цикл for, но вместо to будем писать downto.
Код
var
i: integer;
begin
for i := 28 downto 17 do
writeln(i);
end.