fork download
  1. #include <bits/stdc++.h>
  2.  
  3. #define ____AnhKietSS____ ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
  4. #define NamDinh signed
  5. #define ii pair<int,int>
  6. #define ll long long
  7. #define foru(i,d,c) for(int i=(d);i<=(c);i++)
  8. #define ford(i,d,c) for(int i=(d);i>=(c);i--)
  9. #define fi first
  10. #define se second
  11. #define pb push_back
  12. #define pf push_front
  13. #define MOD 1000000007
  14. #define inf 0x3f
  15. #define INF 4557430888798830399LL
  16.  
  17. using namespace std;
  18.  
  19. const ll N=1000000000000000000LL;
  20.  
  21. ll p[20];
  22. vector<pair<ll,ll> > a;
  23. vector<pair<ll,ll> > b;
  24.  
  25. void dfs(int i,ll x,ll d,int e)
  26. {
  27. a.pb({x,d});
  28.  
  29. if(i>16) return;
  30.  
  31. ll y=x;
  32.  
  33. foru(j,1,e)
  34. {
  35. if(y>N/p[i]) break;
  36.  
  37. y*=p[i];
  38.  
  39. dfs(i+1,y,d*(j+1),j);
  40. }
  41. }
  42.  
  43. NamDinh main()
  44. {
  45. ____AnhKietSS____
  46.  
  47. p[1]=2;
  48. p[2]=3;
  49. p[3]=5;
  50. p[4]=7;
  51. p[5]=11;
  52. p[6]=13;
  53. p[7]=17;
  54. p[8]=19;
  55. p[9]=23;
  56. p[10]=29;
  57. p[11]=31;
  58. p[12]=37;
  59. p[13]=41;
  60. p[14]=43;
  61. p[15]=47;
  62. p[16]=53;
  63.  
  64. dfs(1,1,1,60);
  65.  
  66. sort(a.begin(),a.end());
  67.  
  68. ll ma=0;
  69.  
  70. foru(i,0,(int)a.size()-1)
  71. {
  72. if(a[i].se>ma)
  73. {
  74. ma=a[i].se;
  75. b.pb(a[i]);
  76. }
  77. }
  78.  
  79. int t;
  80. cin>>t;
  81.  
  82. while(t--)
  83. {
  84. ll n;
  85. cin>>n;
  86.  
  87. int l=0;
  88. int r=(int)b.size()-1;
  89. int pos=0;
  90.  
  91. while(l<=r)
  92. {
  93. int mid=(l+r)/2;
  94.  
  95. if(b[mid].fi<=n)
  96. {
  97. pos=mid;
  98. l=mid+1;
  99. }
  100. else
  101. {
  102. r=mid-1;
  103. }
  104. }
  105.  
  106. cout<<b[pos].fi<<"\n";
  107. }
  108.  
  109. return 0;
  110. }
Success #stdin #stdout 0.01s 5320KB
stdin
4
12
122
7557
123456789
stdout
12
120
5040
122522400