打素数表
import java.util.*;
import java.io.*;
import java.math.*;
public class Main
{
static int[] pri=new int[1000];
static int len=0,anslen;
static BigInteger n,up,temp;
static boolean[] vis=new boolean[1000];
static BigInteger[] ans=new BigInteger[1000];
static
{
up=BigInteger.valueOf(1);
for(int i=0;i<100;i++)
{
up=up.multiply(BigInteger.valueOf(10));
}
len=0;
for(int i=2;i<1000;i++)
{
if(!vis[i]) pri[len++]=i;
for(int j=0;j<len&&i*pri[j]<1000;j++)
{
vis[i*pri[j]]=true;
if(i%pri[j]==0) break;
}
}
anslen=-1;
ans[++anslen]=BigInteger.valueOf(1);
do
{
anslen++;
temp=ans[anslen]=ans[anslen-1].multiply(BigInteger.valueOf(pri[anslen-1]));
}while(temp.compareTo(up)<0);
}
public static void main(String args[])
{
Scanner cin=new Scanner(new BufferedInputStream(System.in));
while(cin.hasNext())
{
int t=cin.nextInt();
for(int j=0;j<t;j++)
{
n=cin.nextBigInteger();
for(int i=0;i<anslen;i++)
{
if(n.compareTo(ans[i])>=0) temp=ans[i];
}
System.out.println(temp);
}
}
}
}