#include #include std::vector sieve(int limit) { std::vector is_prime(limit + 1, true); is_prime[0] = is_prime[1] = false; for (int i = 2; i * i <= limit; i++) { if (is_prime[i]) { for (int j = i * i; j <= limit; j += i) { is_prime[j] = false; } } } return is_prime; } int main() { int T; std::cin >> T; int limit = 20000000; std::vector is_prime = sieve(limit); std::vector> twin_primes; for (int i = 2; i < limit - 2; ++i) { if (is_prime[i] && is_prime[i + 2]) { twin_primes.push_back({i, i + 2}); } } while (T--) { int N; std::cin >> N; printf("%d %d\n", twin_primes[N - 1].first, twin_primes[N - 1].second); } return 0; }