Advertisement
Kaidul

UVA - 294

Dec 16th, 2012
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.28 KB | None | 0 0
  1. #include <algorithm>
  2. #include <bitset>
  3. #include <cctype>
  4. #include <cmath>
  5. #include <complex>
  6. #include <cstdio>
  7. #include <cstdlib>
  8. #include <cstring>
  9. #include <ctime>
  10. #include <deque>
  11. #include <fstream>
  12. #include <iostream>
  13. #include <list>
  14. #include <map>
  15. #include <memory>
  16. #include <queue>
  17. #include <set>
  18. #include <sstream>
  19. #include <stack>
  20. #include <string>
  21. #include <utility>
  22. #include <vector>
  23. #include <iomanip>
  24.  
  25. using namespace std;
  26.  
  27. #define REP(i,n) for(__typeof(n) i=0; i<(n); i++)
  28. #define FOR(i,a,b) for(__typeof(b) i=(a); i<=(b); i++)
  29. #define RFOR(i,a,b) for(__typeof(b) i=(a); i>(b); i--)
  30. #define RESET(t,value) memset((t), value, sizeof(t))
  31. typedef long long int64;
  32. typedef long double d64;
  33. #define READ(f) freopen(f, "r", stdin)
  34. #define WRITE(f) freopen(f, "w", stdout)
  35. #define PI acos(-1.0)
  36. #define INF (1<<30)
  37. #define eps 1e-8
  38. #define pb push_back
  39. #define ppb pop_back
  40. #define pii pair<double,double>
  41. #define G struct node
  42.  
  43. template< class T > T gcd(T a, T b) { return (b != 0 ? gcd<T>(b, a%b) : a); }
  44. template< class T > T lcm(T a, T b) { return (a / gcd<T>(a, b) * b); }
  45. template< class T > void setmax(T &a, T b) { if(a < b) a = b; }
  46. template< class T > void setmin(T &a, T b) { if(b < a) a = b; }
  47.  
  48. int GCD(int a, int b){return (b == 0 ? a : GCD(b, a % b));}
  49. int LCM(int a, int b){ return (a * (b/ GCD(a, b))); }
  50. int ABS(int a) {return ((a >= 0) ? a : -a); }
  51.  
  52. vector < int > pset;
  53. void initSet(int _size){ pset.resize(_size); FOR(i,0,_size-1) pset[i]=i;}
  54. int findSet(int i){return (pset[i]== i)?i: (pset[i] = findSet(pset[i]));}
  55. void unionSet(int i,int j){ pset[findSet(i)]=findSet(j);}
  56. bool isSameSet(int i,int j){ return findSet(i)==findSet(j);}
  57.  
  58. #define Max 10010
  59. long long status[(Max/32)+2];
  60. vector <long long> primeList;
  61. map <long long, long long> primeFactor;
  62.  
  63. bool Check(long long N,long long pos){return (bool)(N & (1<<pos));}
  64. int Set(long long N,long long pos){ return N=N | (1<<pos);}
  65.  
  66. void RSieve(long long N)
  67. {
  68.      primeList.clear();
  69.      long long i, j, sqrtN;
  70.      sqrtN = long( sqrt( N ) );
  71.      for( i = 3; i <= sqrtN; i += 2 )
  72.      {
  73.          if( Check(status[i>>5],i&31)==0)
  74.          {
  75.              for( j = i*i; j <= N; j += (i<<1) )
  76.              {
  77.                  status[j>>5]=Set(status[j>>5],j & 31)   ;
  78.              }
  79.          }
  80.      }
  81.      primeList.pb(2);
  82.      for(i=3;i<=N;i+=2)
  83.          if( Check(status[i>>5],i&31)== 0) primeList.pb(i);
  84. }
  85.  
  86. long long d(long long n){
  87.     primeFactor.clear();
  88.         REP(i, primeList.size()){
  89.             long long p = primeList[i];
  90.             while(n % p == 0){
  91.                 n = n / p;
  92.                 primeFactor[p] += 1;
  93.             }
  94.         }
  95.  
  96.     long long result = 1;
  97.     REP(i, primeFactor.size()){
  98.         long long r = primeFactor[i];
  99.         result *= (r + 1);
  100.     }
  101.     return result;
  102. }
  103.  
  104. int main()
  105. {
  106.     READ("input.txt");
  107.     int t;
  108.     RSieve(10010); //কেন কাজ করবে ? বাল :/
  109.     long long u,l;
  110.     cin>>t;
  111.     while(t--)
  112.     {
  113.         cin>>l>>u;
  114.         long long max = -1, n;
  115.         FOR(i,l,u) {
  116.             if(d(i)>max) {
  117.                 max = d(i);
  118.                 n = i;
  119.             }
  120.         }
  121.         cout<<"Between "<<l<<" and "<<u<<", "<<n<<" has a maximum of "<<max<<" divisors.\n";
  122.     }
  123.     return 0;
  124. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement