#include #include #include #include #include #include #include #include #include #include #include #include using namespace std; int a[2]; void init() { a[0] = a[1] = -1; } void add(int x) { if(a[0] == -1) { a[0] = x; } else if(a[1] == -1) { a[1] = x; } else { if(x < a[0]) { a[1] = a[0]; a[0] = x; } else if(x < a[1]) { a[1] = x; } } } int main() { int T, n, x; scanf("%d", &T); while(T--) { scanf("%d", &n); init(); for(int i = 1; i <= n; i++) { scanf("%d", &x); for(int j = 2; j * j <= x; j++) { if(x % j == 0) { while(x % j == 0) { add(j); x /= j; } } } if(x > 1) add(x); } if(a[0] != -1 && a[1] != -1 && a[0] * a[1] != 2) { printf("%I64d\n", (long long)a[0] * a[1]); } else { printf("-1\n"); } } return 0; }