#include<iostream>
#include<cmath>
#include<algorithm>
#include<vector>
#define mod 1000000007
using namespace std;
vector<long long int>v;
long long int power(long long int m)
{
long long int total=m%mod;
total=(total*m)%mod;
total=(total*m)%mod;
return total;
}
void factorise( long long int n)
{
int counte=0;
while (n%2 == 0)
{
n = n/2;
counte++;
}
if(counte>0)
v.push_back(2);
for (int i = 3; i <= sqrt(n); i = i+2)
{
int counter=0;
while (n%i == 0)
{
counter++;
n = n/i;
}
if(counter>0)
v.push_back(i);
}
if (n > 2)
v.push_back(n);
}
int main()
{
int t;
cin>>t;
while(t--)
{
long long int N;
cin>>N;
for(int i=0;i<N;i++)
{
long long int x;
cin>>x;
factorise(x);
}
sort(v.begin(),v.end());
int g=v.size();
long long int finali=1;
finali=finali*power(v[0]);
for(int i=1;i<g;i++)
{
if(v[i]!=v[i-1])
finali=(finali*power(v[i])) % mod;
}
cout<<finali<<"\n";
}
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPGNtYXRoPgojaW5jbHVkZTxhbGdvcml0aG0+CiNpbmNsdWRlPHZlY3Rvcj4KI2RlZmluZSBtb2QgMTAwMDAwMDAwNwp1c2luZyBuYW1lc3BhY2Ugc3RkOwp2ZWN0b3I8bG9uZyBsb25nIGludD52Owpsb25nIGxvbmcgaW50ICBwb3dlcihsb25nIGxvbmcgIGludCBtKQp7CiAgICBsb25nIGxvbmcgaW50IHRvdGFsPW0lbW9kOwogICAgdG90YWw9KHRvdGFsKm0pJW1vZDsKICAgIHRvdGFsPSh0b3RhbCptKSVtb2Q7CiAgICByZXR1cm4gdG90YWw7Cn0Kdm9pZCBmYWN0b3Jpc2UoIGxvbmcgbG9uZyBpbnQgIG4pCnsKICAgIGludCBjb3VudGU9MDsKICAgIHdoaWxlIChuJTIgPT0gMCkKICAgIHsKICAgICAgICBuID0gbi8yOwogICAgICAgY291bnRlKys7CiAgICB9CiAgICBpZihjb3VudGU+MCkKICAgICAgICB2LnB1c2hfYmFjaygyKTsKICAgIGZvciAoaW50IGkgPSAzOyBpIDw9IHNxcnQobik7IGkgPSBpKzIpCiAgICB7CiAgICAgICAgaW50IGNvdW50ZXI9MDsKICAgICAgICB3aGlsZSAobiVpID09IDApCiAgICAgICAgewogICAgICAgICAgICBjb3VudGVyKys7CiAgICAgICAgICAgIG4gPSBuL2k7CiAgICAgICAgfQogICAgICAgIGlmKGNvdW50ZXI+MCkKICAgICAgICAgICAgdi5wdXNoX2JhY2soaSk7CiAgICB9CiAgICBpZiAobiA+IDIpCiAgICAgICAgdi5wdXNoX2JhY2sobik7Cn0KaW50IG1haW4oKQp7CiAgICBpbnQgdDsKICAgIGNpbj4+dDsKICAgIHdoaWxlKHQtLSkKICAgIHsKICAgICAgIGxvbmcgbG9uZyBpbnQgTjsKICAgICAgIGNpbj4+TjsKICAgICAgIGZvcihpbnQgaT0wO2k8TjtpKyspCiAgICAgICB7CiAgICAgICAgICAgIGxvbmcgbG9uZyBpbnQgeDsKICAgICAgICAgICBjaW4+Png7CiAgICAgICAgICAgZmFjdG9yaXNlKHgpOwogICAgICAgfQogICAgICAgc29ydCh2LmJlZ2luKCksdi5lbmQoKSk7CiAgICAgICBpbnQgZz12LnNpemUoKTsKICAgICAgIGxvbmcgbG9uZyBpbnQgZmluYWxpPTE7CiAgICAgICBmaW5hbGk9ZmluYWxpKnBvd2VyKHZbMF0pOwogICAgICAgZm9yKGludCBpPTE7aTxnO2krKykKICAgICAgIHsKICAgICAgICAgICBpZih2W2ldIT12W2ktMV0pCiAgICAgICAgICAgIGZpbmFsaT0oZmluYWxpKnBvd2VyKHZbaV0pKSAlIG1vZDsKICAgICAgIH0KICAgICAgIGNvdXQ8PGZpbmFsaTw8IlxuIjsKICAgIH0KfQ==