对于 50%50% 的数据,a_i\le1000a
i
≤1000
这样10分???
#include<bits/stdc++.h>
using namespace std;
int m,size;
long long a,p[]={1,2,4,6,12,24,36,48,60,120,180,240,360,720,840,1260,1680,2520,5040,7560,10080,15120,20160,25200,27720,45360,50400,55440,83160};
long long find(long long k){
int l=1,r=size;
while(l<r){
int mid=(l+r)>>1;
if(p[mid]==k) return p[mid];
if(p[mid]>k) r=mid-1;
else l=mid+1;
}
return p[l];
}
int main(){
size=sizeof(p)/sizeof(long long);
scanf("%d",&m);
for(int i=1;i<=m;i++){
scanf("%lld",&a);
printf("%lld\n",find(a));
}
return 0;
}