func_code_string: #include <bits/stdc++.h>   using namespace std;   template <class T1, class T2>   ostream &operator<<(ostream &os, const pair<T1, T2> &p) {     os <<  {  << p.first <<  ,  << p.second <<  } ;     return os;   }   const int N = 2e6 + 5;   const int oo = 1e9 + 7;   int lp[N + 1];   vector<int> pr;   void sieve() {     for (int i = 2; i <= N; ++i) {       if (lp[i] == 0) {         lp[i] = i;         pr.push_back(i);       }       for (int j = 0; j < (int)pr.size() && pr[j] <= lp[i] && i * pr[j] <= N; ++j)         lp[i * pr[j]] = pr[j];     }   }   int n;   int a[N];   bool isp[N];   int cnt(int x) { return upper_bound(a, a + n, x) - lower_bound(a, a + n, x); }   int chk() {     for (int i = upper_bound(a, a + n, 1) - a; i < n; i++) {       if (isp[a[i] + 1]) return a[i];     }     return 0;   }   int32_t main() {     ios::sync_with_stdio(false);     cin.tie(nullptr);     cout.tie(nullptr);     sieve();     for (int i : pr) isp[i] = 1;     cin >> n;     for (int i = 0; i < n; i++) cin >> a[i];     sort(a, a + n);     int y = chk();     int x = cnt(1) + (y > 0);     if (x >= 2) {       cout << x <<   n ;       if (y) {         cout << y <<    ;         x--;       }       for (int i = 1; i <= x; i++) cout <<  1  ;       cout <<   n ;     } else {       for (int i = 0; i < n; i++) {         for (int j = i + 1; j < n; j++) {           if (isp[a[i] + a[j]]) {             cout <<  2 n ;             cout << a[i] <<     << a[j] << endl;             return 0;           }         }       }       cout <<  1 n ;       cout << a[0] <<   n ;     }   }   