#include #include "bits/stdc++.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include typedef long long ll; const int INF = 1e8; #define rep(i,n) for(ll i=0;i<(ll)(n);i++) using namespace std; typedef pair P; const int saidai = 5000000; bool judge[10]; bool prime[saidai + 1]; bool ok[10]; vector prime_number; void inite_ok() { for (int i = 0; i < 10; i++) { ok[i] = false; } } void sieve() { prime_number.push_back(1); for (int i = 2; i <= saidai; i++) { if (!prime[i]) { prime_number.push_back(i); for (int j = i * 2; j <= saidai; j += i) { prime[j] = true; } } } } bool bunkai(int x) { int s = 0; while (x != 0) { s = x % 10; x /= 10; if (!judge[s]) { return false; } } return true; } void ok_judge(int x) { int s = 0; while (x != 0) { s = x % 10; x /= 10; ok[s] = true; } } int main() { int n = 0; cin >> n; sieve(); int tmp; for (int i = 0; i < n; i++) { cin >> tmp; judge[tmp] = true; } bool all = true; for (int i = 0; i < 10; i++) { if (judge[i] == true) { } else { all = false; } } if (all) { cout << 4999999 << endl; return 0; } int left = 1, right = 1; int ans = -1; while (right != prime_number.size()) { if (bunkai(prime_number[right])) { ok_judge(prime_number[right]); right++; } else { /* cout << left << " " << right << endl; cout << prime_number[left] << " " << prime_number[right] << endl; cout << (prime_number[right] - 1) - (prime_number[left - 1] + 1) << endl; cout << endl;*/ bool o__L = true; for (int i = 0; i < 10; i++) { /*cout<