// ²òÅú2.5 fact3.c // 20¤Î³¬¾è #include #include #define M (10000*10000) int lo = 1; int mi = 0; int hi = 0; void mul(int k) { int c=0; lo *= k; lo += c; c = lo/M; lo %= M; mi *= k; mi += c; c = mi/M; mi %= M; hi *= k; hi += c; c = hi/M; hi %= M; } void fact(int n) { hi=mi=0; lo=1; for (int i=1;i<=n;i++) { if (i>1) mul(i); } printf("%08d%08d%08d\n", hi, mi, lo); } int main() { int n; scanf("%d", &n); fact(n); return 0; }