من این برنامه رو به زبان c نوشتم
راهت می تونی الگوریتمشو تو delphi پیاده سازس کنی تا 4000 رو برات محاسبه می کنه اگه بیشتر باشه طول آرایه رو زیاد کن
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>

main()
{
int m[4000],i,num;
long double fact;

for(i=1;i<4000;i++)
m[i]=i;
cout<<"please enter your number for Fact";
cin>>num;
fact=1;
for(i=1;i<=num;i++)
fact=fact*m[i];
cout<<fact;
getch();
return 0;
}