#include <bits/stdc++.h>
using namespace std;
const int maxn = 3e5 + 5;
const int maxm = 305;
long long arr[maxn];
long long arr1[maxn];
const long long mod = (long long)(1e9 + 7);
long long dp[maxn];
vector<long long> edges[maxn];
long long n, m, v, k, q, D, H, a, b, t, c, h, d, x, y, z;
string s, s1, s2;
long long gcd(long long a, long long b) {
  if (b == 0) return a;
  return gcd(b, a % b);
}
long long par[maxn];
char pic[550][550];
void init() {
  for (int i = 0; i < maxn; i++) par[i] = i;
}
long long find(int i) {
  if (par[i] != i) {
    return par[i] = find(par[i]);
  } else
    return i;
}
void merge(int x, int y) { par[find(x)] = par[find(y)]; }
long long presum[100];
long long ans[100];
bool ok(int i, int j) {
  if (i >= 0 && i < n && j >= 0 && j < m && pic[i][j] == '*')
    return true;
  else
    return false;
}
bool isVowel(char c) {
  if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u')
    return true;
  else
    return false;
}
bool ok(int n) {
  int t = 0;
  while (n > 0) {
    t += n % 10;
    n /= 10;
  }
  return t % 4 == 0;
}
bool ok(int x, int n, int k) {
  for (int i = 0; i < n; i++) {
    if (abs(arr[i] - x) > k) return false;
  }
  return true;
}
bool ok(long long r) {
  long long x = k - a * r;
  if (x <= 0) return false;
  if (r == n) return true;
  if (x <= b) return false;
  long long y = x - b * (n - r);
  if (y <= 0) return false;
  return true;
}
int main() {
  cin >> t;
  while (t--) {
    cin >> n;
    set<long long> se;
    long long ret = 0;
    for (int i = 0; i < n; i++) {
      cin >> arr[i];
      se.insert(arr[i]);
    }
    vector<long long> v;
    for (auto x : se) v.push_back(x);
    sort(v.begin(), v.end(), greater<long long>());
    ret = v[0];
    se.clear();
    for (int i = 0; i < min((int)v.size(), 50); i++) se.insert(v[i]);
    for (auto x : se) {
      for (auto y : se) {
        if (x != y && x > y && x % y != 0) {
          ret = max(ret, x + y);
        }
      }
    }
    for (auto x : se) {
      for (auto y : se) {
        for (auto z : se) {
          if (x > y && y > z && x % y != 0 && y % z != 0 && x % z != 0) {
            ret = max(ret, x + y + z);
          }
        }
      }
    }
    cout << ret << endl;
  }
  return 0;
}
