func_code_string: #include <bits/stdc++.h>   using namespace std;   using i64 = long long;   using f64 = double;   using f80 = long double;   using pii = pair<int, int>;   using pll = pair<i64, i64>;   using ptx = pair<f64, f64>;   const int N = 3e5 + 5, LG = 20;   int f[N], conv[N], tmp[N];   int main() {     ios::sync_with_stdio(false);     cin.tie(0), cout.tie(0);     int n;     cin >> n;     for (int t, i = 1; i <= n; ++i) {       cin >> t;       f[t] = conv[t] = 1;       if (t == 1) {         cout <<  1 n ;         return 0;       }     }     for (int tid = 2; tid <= 7; ++tid) {       i64 drop, st, dr;       for (int i = N - 1; i >= 1; --i) {         drop = st = dr = 0;         for (int j = i; j < N; j += i) {           drop += tmp[j];           st += conv[j];           dr += f[j];         }         tmp[i] = st * dr - drop;       }       if (tmp[1]) {         cout << tid << endl;         return 0;       }       for (int i = 0; i < N; ++i) {         conv[i] = int(tmp[i] > 0);         tmp[i] = 0;       }     }     cout <<  -1 n ;     return 0;   }   