#include <bits/stdc++.h>
using namespace std;
int esetek[8] = {};
vector<int> osztDB(100001);
int lnko(int a, int b) {
  if (a < b) {
    int temp = a;
    a = b;
    b = temp;
  }
  if (b == 0)
    return a;
  else
    return lnko(b, a % b);
}
int osztokDb(int n) {
  int db = 0;
  for (int i = 1; i * i <= n; i++) {
    if (n % i == 0)
      if (i != n / i)
        db += 2;
      else
        db++;
  }
  return db;
}
int komb(int n, int k) {
  int sz = 1, ne = 1;
  for (int i = n; i <= n + k - 1; i++) {
    sz *= i;
    ne *= (i - n + 1);
  }
  if (sz / ne >= 0)
    return sz / ne;
  else
    return 0;
}
void AddDB(int a, int b, int c) {
  esetek[7] = osztDB[lnko(lnko(a, b), c)];
  esetek[3] = osztDB[lnko(a, b)] - esetek[7];
  esetek[5] = osztDB[lnko(a, c)] - esetek[7];
  esetek[6] = osztDB[lnko(b, c)] - esetek[7];
  esetek[1] = osztDB[a] - esetek[7] - esetek[5] - esetek[3];
  esetek[2] = osztDB[b] - esetek[7] - esetek[3] - esetek[6];
  esetek[4] = osztDB[c] - esetek[7] - esetek[5] - esetek[6];
  return;
}
int CreateNum(int a, int b, int c) {
  vector<int> v(3);
  v[0] = a;
  v[1] = b;
  v[2] = c;
  sort(v.begin(), v.end());
  return (v[0] * 100 + v[1] * 10 + v[2]);
}
int main() {
  for (int i = 0; i < 100001; i++) osztDB[i] = osztokDb(i);
  cin.sync_with_stdio(false);
  cin.tie(0);
  int n;
  cin >> n;
  vector<int> ki(n);
  for (int i = 0; i < n; i++) {
    int a, b, c;
    cin >> a >> b >> c;
    AddDB(a, b, c);
    vector<bool> test(1000, false);
    int meg = 0;
    for (int x = 1; x < 8; x++) {
      for (int y = 1; y < 8 && (x & 1); y++) {
        for (int z = 1; z < 8 && (y & (1 << 1)); z++) {
          int tar = CreateNum(x, y, z);
          if (z & (1 << 2) && !test[tar]) {
            test[tar] = true;
            if (x == y && y == z)
              meg += komb(esetek[x], 3);
            else if (x == y)
              meg += esetek[x] * (esetek[x] + 1) / 2 * esetek[z];
            else if (y == z)
              meg += esetek[y] * (esetek[y] + 1) / 2 * esetek[x];
            else if (x == z)
              meg += esetek[x] * (esetek[x] + 1) / 2 * esetek[y];
            else
              meg += esetek[x] * esetek[y] * esetek[z];
          }
        }
      }
    }
    ki[i] = meg;
  }
  for (int i = 0; i < n; i++) cout << ki[i] << "\n";
  return 0;
}
