66 lines
984 B
C++
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;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|