#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll N = 105;
const ll MOD = 1e9 + 7;
int n;
vector<vector<map<pair<int, int>, int>>> dp(N, vector<map<pair<int, int>, int>>(N));
int max_gcd(int ind, vector<int> &v, int gc, int gc2, int cnt) {
if(ind == n) {
if(cnt == (n + 1) / 2) {
return gc + gc2;
}
return 0;
}
if (dp[ind][cnt].find({gc, gc2}) != dp[ind][cnt].end()) return dp[ind][cnt][{gc, gc2}];
int take = max_gcd(ind + 1, v, gcd(gc, v[ind]), gc2, cnt + 1);
int notTake = max_gcd(ind + 1, v, gc, gcd(gc2, v[ind]), cnt);
return dp[ind][cnt][{gc, gc2}] = max(take, notTake);
}
void solve()
{
cin >> n;
vector<int> v(n);
for(int i = 0; i < n; i++) {
cin >> v[i];
}
cout << max_gcd(0, v, 0, 0, 0) << "\n";
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) dp[i][j].clear();
}
}
int main()
{
ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
int t;
cin >> t;
while(t--){
solve();
}
}