Here it is. The factorial of the numbers from 1 over to 1000 in 51 seconds.

Code:
#include <stdio.h>
#include <conio.h>
#include <time.h>
void main ()
{
	long int v[4000];
   int i,n;
   double start=0.0;
   v[0]=1;
   for(i=1;i<4000;i++) v[i]=0;
   printf("Enter the number: ");
   scanf("%d",&n); 
   if(n==0 || n==1 ) printf("%d",&n,"!=1");
   else
   {
      start = clock ();
   	long int c=0;
   	for(i=1;i<=n;i++)
      {
      	long int j;
     		for(j=0;j<=c;j++)
           v[j]*=i;
         for(j=0;j<=c;j++)
         {
         	if(v[j]>=10)
            {
               v[j+1]=v[j+1]+v[j]/10;
               v[j]=v[j]%10;
               int k1=3999,cont=0;
               while(v[k1]==0) { cont++; k1--; }
               c=3999-cont;
            }
         }
        printf("%d",i);printf("!=  ");
        for(j=c;j>=0;j--)
        	   printf("%d",v[j]);
		printf("\n");
   	}
   start=clock()-start;
   start/=1000;
   printf("It took  %f ",start);printf(" seconds to complete. ");
  }
	getch ();
}