func_code_string: #include <bits/stdc++.h>   using namespace std;   int t;   int n;   long long a[200010];   int ans_check[200010];   int main() {     int i, j, k;     scanf( %d , &t);     while (t--) {       int check = 0;       int cnt = 1;       memset(ans_check, 0, sizeof(ans_check));       scanf( %d , &n);       for (i = 1; i <= n; i++) {         scanf( %64d , &a[i]);       }       sort(a + 1, a + n + 1);       long long ans_uncheck = a[1] * a[n];       for (i = 1; i <= n; i++)         if (a[i] * a[n - i + 1] != ans_uncheck || a[i] == ans_uncheck ||             a[n - i + 1] == ans_uncheck) {           printf( -1 n );           check = 1;           break;         }       if (check == 1) continue;       long long che = 2;       int ch = 0;       long long tmpp = ans_uncheck;       while (ans_uncheck > 1) {         if (ans_uncheck % che == 0) {           if (ch == 1) cnt++;           ans_uncheck /= che;           ch = 0;           ans_check[cnt]++;         } else {           che++;           ch = 1;         }       }       long long check2 = 1;       for (i = 1; i <= cnt; i++) check2 *= (ans_check[i] + 1);       if (cnt == 1) {         if (n != ans_check[1] - 1) {           printf( -1 n );           check = 1;         }       } else if (check2 != n + 2) {         printf( -1 n );         check = 1;       }       if (check == 1) continue;       cout << tmpp << endl;     }     return 0;   }   