Данную тему задали в курсовую работу. И нужно было, чтобы программа считала спокойно не менее 500!

Но эту проблему я решил.  Вот код

Program factor;
Uses CRT;
const k = 30000;
Var
m: array [1..k] of integer;
c,t,j,i,n,o: Integer;
Begin
ClrScr;
Repeat
WriteLn('Введите положительное челое число');
ReadLn(n);
Until(n>-1);
m[1]:=1;}
for i:=1 to n do
Begin
for j:=1 to k do
begin
if t<>0 then
m[j]:=m[j]*i+t
else m[j]:=m[j]*i;
t:=0;
if m[j]>9 then
begin
t:=m[j] div 10;
m[j]:=m[j] mod 10;
end;
end;
end;
for i:=k downto 1 do
Begin
if m[i]=0 then
c:=c+1
else break;
end;
for i:=1 to k do
Begin
if m[i]=0 then
o:=o+1
else break;
end;
Write (n,'!','=');
for i:=k-c downto 1 do
Write (m[i]);
WriteLn;
begin
WriteLn(k-c,' Цифр(а)');
if o>0 then
Write(o,' Нул(ь/я/ей) на конце');
end;
repeat
until (keypressed);
end.

Скачать саму курсовую — download
Защитил на «Отлично»