Advertisement
Guest User

Trailing Zero Simulation

a guest
Nov 21st, 2019
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.04 KB | None | 0 0
  1. /***********Template Starts Here***********/
  2. //#include <bits/stdc++.h>
  3. #include <cstdio>
  4. #include <cstring>
  5. #include <cmath>
  6. #include <algorithm>
  7. #include <map>
  8. #include <queue>
  9. #include <stack>
  10. #include <vector>
  11. #include <deque>
  12. #include <functional>
  13. #include <string>
  14. #include <iostream>
  15. #include <cctype>
  16. #include <set>
  17. #include <climits>
  18. #include <iomanip>
  19. #include <cassert>
  20. #include <sstream>
  21.  
  22. #define pb push_back
  23. #define nl puts ("")
  24. #define sp printf ( " " )
  25. #define phl printf ( "hello\n" )
  26. #define ff first
  27. #define ss second
  28. #define POPCOUNT __builtin_popcountll
  29. #define RIGHTMOST __builtin_ctzll
  30. #define LEFTMOST(x) (63-__builtin_clzll((x)))
  31. #define MP make_pair
  32. #define CLR(x,y) memset(x,y,sizeof(x))
  33. #define UNIQUE(V) (V).erase(unique((V).begin(),(V).end()),(V).end())
  34. #define MIN(a,b) ((a)<(b)?(a):(b))
  35. #define MAX(a,b) ((a)>(b)?(a):(b))
  36. #define NUMDIGIT(x,y) (((vlong)(log10((x))/log10((y))))+1)
  37. #define SQ(x) ((x)*(x))
  38. #define ABS(x) ((x)<0?-(x):(x))
  39. #define FABS(x) ((x)+eps<0?-(x):(x))
  40. #define ALL(x) (x).begin(),(x).end()
  41. #define LCM(x,y) (((x)/gcd((x),(y)))*(y))
  42. #define SZ(x) ((vlong)(x).size())
  43. #define NORM(x) if(x>=mod)x-=mod;
  44. #define MOD(x,y) (((x)*(y))%mod)
  45. #define ODD(x) (((x)&1)==0?(0):(1))
  46.  
  47. using namespace std;
  48.  
  49. typedef long long vlong;
  50. typedef unsigned long long uvlong;
  51.  
  52. const vlong inf = 2147383647;
  53. const double pi = 2 * acos ( 0.0 );
  54. const double eps = 1e-9;
  55.  
  56.  
  57. inline vlong gcd ( vlong a, vlong b ) {
  58.     a = ABS ( a ); b = ABS ( b );
  59.     while ( b ) { a = a % b; swap ( a, b ); } return a;
  60. }
  61.  
  62. vlong ext_gcd ( vlong A, vlong B, vlong *X, vlong *Y ){
  63.     vlong x2, y2, x1, y1, x, y, r2, r1, q, r;
  64.     x2 = 1; y2 = 0;
  65.     x1 = 0; y1 = 1;
  66.     for (r2 = A, r1 = B; r1 != 0; r2 = r1, r1 = r, x2 = x1, y2 = y1, x1 = x, y1 = y ) {
  67.         q = r2 / r1;
  68.         r = r2 % r1;
  69.         x = x2 - (q * x1);
  70.         y = y2 - (q * y1);
  71.     }
  72.     *X = x2; *Y = y2;
  73.     return r2;
  74. }
  75.  
  76. inline vlong modInv ( vlong a, vlong m ) {
  77.     vlong x, y;
  78.     ext_gcd( a, m, &x, &y );
  79.     x %= m;
  80.     if ( x < 0 ) x += m; //modInv is never negative
  81.     return x;
  82. }
  83.  
  84. inline vlong power ( vlong a, vlong p ) {
  85.     vlong res = 1, x = a;
  86.     while ( p ) {
  87.         if ( p & 1 ) res = ( res * x );
  88.         x = ( x * x ); p >>= 1;
  89.     }
  90.     return res;
  91. }
  92.  
  93. inline vlong bigmod ( vlong a, vlong p, vlong m ) {
  94.     vlong res = 1 % m, x = a % m;
  95.     while ( p ) {
  96.         if ( p & 1 ) res = ( res * x ) % m;
  97.         x = ( x * x ) % m; p >>= 1;
  98.     }
  99.     return res;
  100. }
  101.  
  102.  
  103. /***********Extended****************/
  104.  
  105. #define sc(x) scanf("%d",&x)
  106. #define scl(x) scanf("%lld",&x)
  107. #define scc(x,y) scanf("%d %d",&x,&y)
  108. #define sccl(x,y) scanf("%lld %lld",&x,&y)
  109. #define sccc(x,y,z) scanf("%d %d %d",&x,&y,&z)
  110. #define scccl(x,y,z) scanf("%lld %lld %lld",&x,&y,&z)
  111. #define prc(c) printf("Case %d: ",c)
  112. #define prn(c) printf("Case %d:\n",c)
  113. #define pr(c) printf("%d\n",c)
  114. #define prl(c) printf("%lld\n",c)
  115. #define FORL(x,y,z) for(int x = y ; x<z ; x++)
  116. #define FORE(x,y,z) for(int x = y ; x<=z; x++)
  117. #define ROFE(x,y,z) for(int x = y ; x>=z; x--)
  118. #define lli long long int
  119.  
  120. //int dx[] = {-1,1,0,0};
  121. //int dy[] = {0,0,-1,1};
  122.  
  123. typedef pair < vlong, vlong > pll;
  124. typedef vector<pll> vll;
  125. typedef vector<vlong> vl;
  126.  
  127. /***********Template Ends Here***********/
  128. /*
  129.  
  130. #define MX 10000000
  131. bool flag[MX+5];
  132. int prime[MX+5];
  133. int ind = 0;
  134. //vector<lli>lis[MX+5];
  135. map<int,int>indi;
  136.  
  137.  
  138. void sieve(){
  139.     flag[0] = 1;
  140.     flag[1] = 1;
  141.     for(int i=4;i<=MX;i+=2){
  142.         flag[i] = true;
  143.         //lis[i].push_back(2);
  144.  
  145.     }
  146.     //lis[2].pb(2);
  147.     prime[0] = 2;
  148.     ind = 1;
  149.     indi[2] = ind;
  150.     for(int i=3;i<=MX;i+=2){
  151.         if(!flag[i]){
  152.             prime[ind] = i;
  153.             ind++;
  154.             indi[i] = ind;
  155.             //lis[i].push_back(i);
  156.             for(int j=i+i;j<=MX;j+=i){
  157.                flag[j] = true;
  158.                //lis[j].push_back(i);
  159.             }
  160.         }
  161.     }
  162.    // cout<<prime[0]<<endl;
  163.     //cout<<prime[1]<<endl;
  164.     //cout<<prime[2]<<endl;
  165. }
  166. */
  167. /********************DONE***************/
  168.  
  169. lli cal(lli n){
  170.     if(n==1) return 1;
  171.     lli t = 1;
  172.     lli cnt = 1;
  173.     lli done = 1;
  174.     while(n > t){
  175.         t = t * 5 +1;
  176.         done = done * 5;
  177.         cnt++;
  178.     }
  179.     if(n == t) return done;
  180.     if(n > t - cnt) return -1;
  181.     lli r = cal(n - (t-1)/5);
  182.     if(r == -1) return -1;
  183.     return r +  done / 5;
  184. }
  185.  
  186. lli zeroes(lli n){
  187.     lli st = 5;
  188.     lli tot = 0;
  189.     while(n/st){
  190.         tot = tot + n/st;
  191.         st = st * 5;
  192.     }
  193.     return tot;
  194. }
  195.  
  196.  
  197. int main(){
  198.    int t;
  199.    lli n;
  200.    /*sc(t);
  201.    FORE(cas,1,t){
  202.         scl(n);
  203.         lli ans;
  204.         ans = cal(n);
  205.         prc(cas);
  206.         if(ans>0) {
  207.             prl(ans*5);
  208.         }
  209.         else{
  210.             printf("impossible\n");
  211.         }
  212.    }*/
  213.     lli cnt  = 0;
  214.     cin>>n;
  215.     for(int i=0;i<=n;i++){
  216.             lli res = zeroes(i);
  217.             if(res % 2 == 0) cnt++;
  218.             cout<<i<<"------"<<res<<" --- cnt = "<< cnt <<endl; // cnt = "Number of Even counts"
  219.     }
  220.  
  221. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement