数据较小 直接打表,
#include<stdio.h>
#include<string.h>
int map[2010];
int prime[20100000];
int count;
void Prime()
{
prime[0]=1;
prime[1]=1;
for(int i=2;i*i<20100000;i++)
{
for(int j=i+i;j*j<20100000;j+=i)
{
prime[j]=1;
}
}
}
void isluck(int num)
{
int sum=0;
int save=num;
for(int i=2;i<save;i++)
{
if(!prime[i])
{
if((num%i)==0)
{
sum++;
while(num%i==0)
num/=i;
}
}
}
if(sum>=3)
map[count++]=save;
}
void zhizao()
{
int a=30;
while(count<2010)
{
isluck(a);
a++;
}
}
int main()
{
int T;
scanf("%d",&T);
count=1;
Prime();
zhizao();
int n;
while(T--)
{
scanf("%d",&n);
printf("%d\n",map[n]);
}
return 0;
}