2025-03-31 17:17:27 -05:00

66 lines
984 B
C++

#include <iostream>
#include <vector>
#define LIMIT 20000000
int main() {
int c;
std::cin >> c;
std::vector<int> nums;
std::vector<int> twins;
int max = 0;
while (c != 0) {
int a;
std::cin >> a;
if (a > max) {
max = a;
}
nums.push_back(a);
c--;
}
std::vector<bool> sieve(LIMIT + 1, true);
sieve[0] = sieve[1] = false;
for (int p = 2; p * p <= LIMIT; ++p) {
if (sieve[p]) {
for (int i = p * p; i <= LIMIT; i += p) {
sieve[i] = false;
}
}
}
int last = 0;
int k = 0;
for (int p = 2; p <= LIMIT; ++p) {
if (sieve[p]) {
k++;
if ((p - last) == 2) {
for (int n : nums) {
if (n == k) {
printf("%d %d", p, last);
}
}
}
last = p;
}
}
}