• Source
    1. #include<bits/stdc++.h>
    2.  
    3. using namespace std;
    4.  
    5. bool check[110];
    6.  
    7. vector<int>prime,ans;
    8.  
    9. void sieve()
    10. {
    11. int i,j;
    12.  
    13. prime.push_back(2);
    14.  
    15. for(i=3; i<=110; i+=2)
    16. {
    17. if(check[i])
    18. continue;
    19.  
    20. prime.push_back(i);
    21.  
    22. for(j=i*i; j<=110; j+=2*i)
    23. {
    24. check[j] = true;
    25. }
    26. }
    27. }
    28.  
    29. int main()
    30. {
    31. sieve();
    32.  
    33. int n,i,store,res;
    34.  
    35. while(scanf("%d",&n)&&n)
    36. {
    37. for(i=0; prime[i]<=n; i++)
    38. {
    39. store = n;
    40.  
    41. res = 0;
    42.  
    43. while(store)
    44. {
    45. res+=(store/=prime[i]);
    46. }
    47.  
    48. ans.push_back(res);
    49. }
    50.  
    51. printf("%3d! =",n);
    52.  
    53. int len = ans.size();
    54.  
    55. int cnt = 1;
    56.  
    57. for(i=0;i<len;i++)
    58. {
    59. if(cnt%16)
    60. {
    61. printf("%3d",ans[i]);
    62. }
    63. else
    64. {
    65. printf("\n%9d",ans[i]);
    66. }
    67.  
    68. cnt++;
    69. }
    70.  
    71. puts("");
    72.  
    73. ans.clear();
    74. }
    75.  
    76. return 0;
    77. }