#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define all(v) v.begin(), v.end()
#define rall(v) v.rbegin(), v.rend()
#define fr(v) for (int i = 0; i < v.size(); i++)
#define Fast                          \
    ios_base::sync_with_stdio(false); \
    cin.tie(NULL);
void input()
{
    if (fopen("stdin.txt", "r"))
    {
        freopen("stdin.txt", "r", stdin);
        freopen("stdout.txt", "w", stdout);
    }
}
ll OO = 0x3f3f3f3f;
bool is_prime(ll n)
{
    if (n < 2)
        return 0;
    else
    {
        for (ll i = 2; i <= n / i; i++)
        {
            if (n % i == 0)
                return 0;
        }
    }
    return 1;
}
ll power(ll b, ll n, ll m)
{
    if (b == 0 && n == 0)
    {
        return 1;
    }
    ll res = 1;
    while (n > 0)
    {
        if (n % 2 != 0)
        {
            res = (res * b) % m;
        }
        b = ((b % m) * (b % m)) % m;
        n /= 2;
    }
    return res;
}
ll mod = 1e9 + 7;
ll modProd(ll a, ll b)
{
    /// complexity: 1
    a = (a % mod + mod) % mod;
    b = (b % mod + mod) % mod;
    return (a * b) % mod;
}
ll modSum(ll a, ll b)
{
    /// complexity: 1
    a = (a % mod + mod) % mod;
    b = (b % mod + mod) % mod;
    return (a + b) % mod;
}
ll msb(ll x)
{
    return log2(x);
}
long long SumOfDivisors(long long num)
{
    long long total = 1;

    for (int i = 2; (long long)i * i <= num; i++)
    {
        if (num % i == 0)
        {
            int e = 0;
            do
            {
                e++;
                num /= i;
            } while (num % i == 0);

            long long sum = 0, pow = 1;
            do
            {
                sum += pow;
                pow *= i;
            } while (e-- > 0);
            total *= sum;
        }
    }
    if (num > 1)
    {
        total *= (1 + num);
    }
    return total;
}
vector<ll> divisors(ll n)
{
    vector<ll> res;
    ll i;
    for (i = 1; i < n / i; i++)
    {
        if (n % i == 0)
        {
            res.push_back(i);
            res.push_back(n / i);
        }
    }
    if (i == n / i)
        res.push_back(i);
    return res;
}
ll N = 5263726;
vector<bool> isprime(N + 1, 1);
vector<int> _3_divisors, p;
vector<int> vec;
void seive()
{
    isprime[0] = isprime[1] = 0;
    for (ll i = 2; i <= N; i++)
    {
        if (!isprime[i])
            continue;
        p.push_back(i);
        for (ll j = 1LL * i * i; j <= N; j += i)
            isprime[j] = 0;
    }
    for (int i = 0; i < p.size(); i++)
    {
        for (int j = i + 1; j < p.size(); j++)
        {
            if (p[i] * p[j] * 1LL > 10527451)
                break;
            vec.push_back(1LL * p[i] * p[j]);
        }
    }
    sort(all(vec));
}
int dx[4] = {-1, 1, 0, 0};
int dy[4] = {0, 0, 1, -1};
int k_dx[8] = {1, 2, 2, 1, -1, -2, -2, -1};
int k_dy[8] = {2, 1, -1, -2, -2, -1, 1, 2};
// up,down,right,left
const int MAX = 1e6 + 5;
ll dp[100005][10];
ll pref[11][MAX], pre[MAX];
void pre_compute()
{
    for (int i = 1; i < MAX; i++)
    {
        if (isprime[i])
        {
            for (int j = i; j <= MAX; j += i)
            {
                pre[j]++;
            }
        }
    }
    pref[0][1] = 1;
    for (int i = 0; i <= 10; i++)
    {
        for (int j = i; j < MAX; j++)
        {
            pref[i][j] = pref[i][j - 1] + (pre[j] == i);
        }
    }
}
void solve()
{
    ll n;
    cin >> n;
    cout << vec[n - 1] << "\n";
}
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    input();
    seive();
    int _t = 1;
    cin >> _t;
    while (_t--)
    {
        solve();
    }
    return 0;
}