51nod 1010 只包含因子2 3 5的数
预处理可能数组,二分查找下。
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std;
const long long maxn = 1e18+1000;
long long a[60000];
int main()
{
int num = 0;
for(long long i = 1; i < maxn; i*=2)
for(long long j = 1; j*i < maxn; j*=3)
for(long long k = 1; k*j*i < maxn; k*=5)
a[num++] = i*j*k;
sort(a,a+num);
int T;
scanf("%d",&T);
while(T--)
{
long long n;
scanf("%lld",&n);
int l = 1, r = num, mid;
while(l <= r)
{
mid = (l+r)>>1;
if(a[mid] >= n)
r = mid-1;
else
l = mid+1;
}
printf("%lld\n",a[l]);
}
return 0;
}