Advertisement
mhdew

UVa11415

Apr 20th, 2019
333
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.94 KB | None | 0 0
  1. /*Basic info
  2. Problem :
  3. Date :
  4. Author : Shesher
  5. */
  6.  
  7. #include<bits/stdc++.h>
  8.  
  9. using namespace std;
  10.  
  11. ///Template
  12. #define in1()    freopen("C:\\Users\\SHESHER\\Rest\\Desktop\\MY COMPUTER\\Code\\Template\\input.txt", "r", stdin);
  13. #define out1()   freopen("C:\\Users\\SHESHER\\Rest\\Desktop\\MY COMPUTER\\Code\\Template\\output.txt", "w", stdout);
  14.  
  15.  
  16. //Data types
  17. #define lo      long
  18. #define ll      long long
  19. #define llu     unsigned long long
  20.  
  21. //loop
  22. #define f1(i,x,y)   for(int i=x;i<=y;i++)
  23.  
  24. //Constants
  25. #define MAX     100007
  26. #define MOD     1000000007
  27. #define PI      acos(-1.0)
  28.  
  29. //STL
  30. #define vout(v)    for(int i=0;i<v.size();i++){cout<<v[i]; if(i==v.size()-1) cout<<endl; else cout<<" ";}
  31.  
  32. //Scan
  33. #define sc(x)    scanf("%d", &x)
  34. #define scl(x)   scanf("%lld", &x)
  35.  
  36. //Print
  37. #define pa(a,i,n)  for(int i=0;i<n;i++){ cout<<a[i]; if(i==n-1) cout<<endl; else cout<<" ";}
  38.  
  39. #define mset(flag)  memset(flag,0,sizeof(flag))
  40.  
  41. bool cmp(int a, int b){ return a>b; }
  42.  
  43. int NOPF(int n)
  44. {
  45.     int cunt=0;
  46.     while(n%2==0){
  47.         cunt++;
  48.         n/=2;
  49.     }
  50.     for(int i=3;i<=sqrt(n);i+=2){
  51.         if(n%i==0){
  52.             while(n%i==0){
  53.                 cunt++;
  54.                 n/=i;
  55.             }
  56.         }
  57.     }
  58.     if(n>1) cunt++;
  59.  
  60.     return cunt;
  61. }
  62.  
  63. ll ar[10011000];
  64. void precal()
  65. {
  66.     ar[0]=1;
  67.     ar[1]=1;
  68.     ar[2]=1;
  69.     ar[3]=2;
  70.     for(int i=4;i<=10000010;i++){
  71.         ar[i]=ar[i-1]+NOPF(i);
  72.     }
  73. }
  74.  
  75. int calculate(int n)
  76. {
  77.     int l=0, r=10000000, mid;
  78.     int temp=-1;
  79.  
  80.     while(l<=r){
  81.         mid=(l+r)/2;
  82.         // cout<<l<<" "<<mid<<" "<<r<<" "<<ar[mid]<<endl;
  83.         if(ar[mid]<=n){
  84.             temp=mid;
  85.             l=mid+1;
  86.         }
  87.         else r=mid-1;
  88.     }
  89.  
  90.     return temp;
  91. }
  92.  
  93. int main()
  94. {
  95.     // in1();
  96.     // out1();  
  97.     // clock_t tStart = clock();
  98.  
  99.     ///CODE STARTS HERE
  100.     precal();
  101.     // cout<<ar[10000000]<<endl;
  102.     int t;
  103.     sc(t);
  104.     while(t--){
  105.         int n;
  106.         sc(n);
  107.         cout<<calculate(n)+1<<endl;
  108.     }
  109.    
  110.     // printf("\n>>Runtime: %.10fs\n", (double) (clock() - tStart) / CLOCKS_PER_SEC);
  111.  
  112.  
  113.     return 0;
  114. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement