思路:

因子只包含2 3 5的数字呢  往后找找 你会发现  并没有很多  虽然范围是1e18  但是符合条件的数字也并没有超过1e6个

我们先预处理筛选一下

然后  剩下的问题就是查找了  用一下stl里面带的二分查找函数来找比它大的数就好了

#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<string.h>
typedef long long ll;
const ll maxn=1e18+100;
using namespace std;
ll a[1000007];
ll cnt,x;
void solve(){
    for(ll i=1;i<maxn;i*=2){
        for(ll j=1;j*i<maxn;j*=3){
            for(ll k=1;k*j*i<maxn;k*=5){
                a[cnt++]=i*j*k;
            }
        }
    }
    sort(a,a+cnt);
}
int T;
int main(){
    solve();
    scanf("%d",&T);
    while(T--){
        scanf("%lld",&x);
        int n=lower_bound(a+1,a+cnt,x)-a;//第0个数是1  排除掉 
        printf("%lld\n",a[n]);
    }
    return 0;
}