fork(8) download
  1. #include<stdio.h>
  2.  
  3. #define LIMIT 10000
  4. #define ANS_SIZE 40
  5.  
  6. int main()
  7. {
  8. int tests, num, ans[ANS_SIZE];
  9. register short int i, j, k;
  10. long temp;
  11.  
  12. scanf("%d", &tests);
  13. for(k = 1; k <= tests; k++)
  14. {
  15. scanf("%d", &num);
  16. ans[0] = 1;
  17. for(i = 1; i < ANS_SIZE; i++)
  18. ans[i] = 0;
  19.  
  20. for(i = 2; i <= num; i++)
  21. {
  22. ans[ANS_SIZE - 1] *= i;
  23. for(j = ANS_SIZE - 2 ; j >= 0 ; j--)
  24. {
  25. temp = ans[j] * i;
  26. ans[j] = temp % LIMIT;
  27. ans[j + 1] += temp/LIMIT;
  28. }
  29. }
  30.  
  31. for(i = (ANS_SIZE - 1); i >= 0; i--)
  32. if(ans[i] != 0)
  33. break;
  34.  
  35. printf("%d", ans[i]);
  36. i--;
  37. for(; i >= 0; i--)
  38. {
  39. if(ans[i] > 999)
  40. printf("%d", ans[i]);
  41. else if(ans[i] > 99)
  42. printf("0%d", ans[i]);
  43. else if(ans[i] > 9)
  44. printf("00%d", ans[i]);
  45. else if(ans[i] > 0)
  46. printf("000%d", ans[i]);
  47. else
  48. printf("0000");
  49. }
  50.  
  51. printf("\n");
  52. }
  53. return 0;
  54. }
Success #stdin #stdout 0s 2900KB
stdin
10
10
15
20
25
30
35
40
45
50
55
60
65
70
75
80
85
90
95
100
stdout
3628800
1307674368000
2432902008176640000
15511210043330985984000000
265252859812191058636308480000000
10333147966386144929666651337523200000000
815915283247897734345611269596115894272000000000
119622220865480194561963161495657715064383733760000000000
30414093201713378043612608166064768844377641568960512000000000000
12696403353658275925965100847566516959580321051449436762275840000000000000