Friday, 28 July 2017

Lightoj 1028 - Trailing Zeroes (I)

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define MAXX 1000002
  4.  
  5. bool isPrime[MAXX];
  6. vector<int>primes;
  7.  
  8. void generate()
  9. {
  10.     primes.pb(2);
  11.     mem(isPrime, 1);
  12.     for(int i=3; i<1002; i+=2)
  13.     {
  14.         if(isPrime[i])
  15.         {
  16.             for(int j=i*i; j<MAXX; j+=i+i)
  17.             {
  18.                 isPrime[j] = false;
  19.             }
  20.         }
  21.     }
  22.     for(int i=3; i<MAXX; i+=2)
  23.     {
  24.         if(isPrime[i])
  25.         {
  26.             primes.pb(i);
  27.         }
  28.     }
  29. }
  30.  
  31. int main()
  32. {
  33.     generate();
  34.     int kases, kaseno = 0;
  35.     ll n;
  36.  
  37.     take(kases);
  38.     ll cnt;
  39.     ll gun;
  40.     while(kases--)
  41.     {
  42.         take(n);
  43.         cnt = 1;
  44.  
  45.  
  46.         for(int i=0; i<SZ(primes) && primes[i]*primes[i]<=n; i++ )
  47.         {
  48.             gun = 1;
  49.             while(% primes[i] == 0)
  50.             {
  51.                 gun++;
  52.                 n /= primes[i];
  53.             }
  54.             cnt = cnt*gun;
  55.         }
  56.  
  57.         if(!= 1)
  58.         {
  59.             cnt *= 2;
  60.         }
  61.  
  62.         pf("Case %d: %lld\n"++kaseno, cnt-1);
  63.  
  64.     }
  65.  
  66.  
  67. }

No comments:

Post a Comment

Most Featured Post

Lightoj 1159 - Batman

http://lightoj.com/volume_showproblem.php?problem=1159 problem analysis: First i thought of this as if s1, s2 and s3 are those three str...