#include #define rep(i, n) for (int i = 0; i < (int)(n); i++) using LI = long long int; using LD = long double; using namespace std; template using APQUE = priority_queue, greater>; template using DPQUE = priority_queue; std::vector Eratosthenes(const long long N) { std::vector is_prime(N + 1); for (long long i = 0; i <= N; i++) { is_prime[i] = true; } std::vector P; for (long long i = 2; i <= N; i++) { if (is_prime[i]) { for (long long j = 2 * i; j <= N; j += i) { is_prime[j] = false; } P.emplace_back(i); } } return P; } int main() { vector primelist = Eratosthenes(10000100); vector productlist; for (long long i = 0; i < primelist.size() - 1; i++) { if (primelist[i + 1] - primelist[i] == 2) { productlist.push_back(primelist[i] * primelist[i + 1]); } } long long t; cin >> t; rep(i, t) { long long n; cin >> n; if (n < 15) { cout << "-1" << endl; continue; } auto it = upper_bound(productlist.begin(), productlist.end(), n); if (it == productlist.begin()) { cout << "-1" << endl; continue; } cout << *(upper_bound(productlist.begin(), productlist.end(), n) - 1) << endl; } }