http://codeforces.com/contest/1165/problem/D
一个简单的问题 给了一些数 这些数是一个数的因子 并且是除了1和本身之外的所有因子 然后找到这个数
就只需要判断因子的a1an是否等于a2an-1… 因为这个数肯定是等于a1*an的 最后再拆分这个数 是否有这么多个因子
代码
/**
* ┏┓ ┏┓
* ┏┛┗━━━━━━━┛┗━━━┓
* ┃ ┃
* ┃ ━ ┃
* ┃ > < ┃
* ┃ ┃
* ┃... ⌒ ... ┃
* ┃ ┃
* ┗━┓ ┏━┛
* ┃ ┃ Code is far away from bug with the animal protecting
* ┃ ┃ 神兽保佑,代码无bug
* ┃ ┃
* ┃ ┃
* ┃ ┃
* ┃ ┃
* ┃ ┗━━━┓
* ┃ ┣┓
* ┃ ┏┛
* ┗┓┓┏━┳┓┏┛
* ┃┫┫ ┃┫┫
* ┗┻┛ ┗┻┛
*/
// warm heart, wagging tail,and a smile just for you!
//
// _ooOoo_
// o8888888o
// 88" . "88
// (| -_- |)
// O\ = /O
// ____/`---'\____
// .' \| |// `.
// / \||| : |||// \
// / _||||| -:- |||||- \
// | | \\ - /// | |
// | \_| ''\---/'' | |
// \ .-\__ `-` ___/-. /
// ___`. .' /--.--\ `. . __
// ."" '< `.___\_<|>_/___.' >'"".
// | | : `- \`.;`\ _ /`;.`/ - ` : | |
// \ \ `-. \_ __\ /__ _/ .-` / /
// ======`-.____`-.___\_____/___.-`____.-'======
// `=---='
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// 佛祖保佑 永无BUG
#include<iostream>
#include<algorithm>
#include<string.h>
#include<cmath>
using namespace std;
long long a[350];
int main()
{
int t;
cin>>t;
while(t--)
{
int flag=0;
long long sum=0;
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
sort(a+1,a+1+n);
long long ans;
ans=a[1]*a[n];
for(int i=2;i<=(n+1)/2;i++)
{
if(a[i]*a[n-i+1]!=ans)
{
flag=1;
break;
}
}
for(long long i=2;i<=sqrt(ans);i++)
{
if(ans%i==0)
{
if(i*i==ans)
{
sum++;
}
else
{
sum+=2;
}
}
}
if(sum!=n)
{
flag=1;
}
if(flag)
{
cout<<-1<<endl;
}
else
{
cout<<ans<<endl;
}
}
return 0;
}