#include <stdio.h>
#define N 100000
#define MEM 1024*1024
int main()
{
register unsigned int i, m, s;
static unsigned long t, k;
register unsigned char * r;
if(NULL == (r = malloc(sizeof(char)*MEM))){
printf("malloc error\n");
return 1;
}
*r = 1;
m=1;
s=1;
k=0;
while(m <= N){
for(i=0;i<s;i++){
t=r[i]*m;
k=k+t;
r[i]=k%10;
k/=10;
}
while( k != 0 ){
r[i]=k%10;
k/=10;
i++;
}
m++;
/* if(m%1000==0){
printf("\n m=%d",m);
printf("\t t=%ld",t);
}*/
s=i;
}
printf("\n\n");
while(s)
printf("%d",r[--s]);
getchar();
return 0;
}
#define N 100000
#define MEM 1024*1024
int main()
{
register unsigned int i, m, s;
static unsigned long t, k;
register unsigned char * r;
if(NULL == (r = malloc(sizeof(char)*MEM))){
printf("malloc error\n");
return 1;
}
*r = 1;
m=1;
s=1;
k=0;
while(m <= N){
for(i=0;i<s;i++){
t=r[i]*m;
k=k+t;
r[i]=k%10;
k/=10;
}
while( k != 0 ){
r[i]=k%10;
k/=10;
i++;
}
m++;
/* if(m%1000==0){
printf("\n m=%d",m);
printf("\t t=%ld",t);
}*/
s=i;
}
printf("\n\n");
while(s)
printf("%d",r[--s]);
getchar();
return 0;
}