#include <bits/stdc++.h>
const int N = 1050000;
long long pri[N];
int isit[N], tot;
void getpri() {
  tot = 0;
  for (int i = 2; i < N; i++) {
    if (!isit[i]) pri[++tot] = i;
    for (int j = 1, x; j <= tot; j++) {
      if ((x = i * pri[j]) >= N) break;
      isit[x] = 1;
      if (i % pri[j] == 0) break;
    }
  }
}
long long qpow(long long a, int b) {
  long long c = 1;
  for (; b; b >>= 1, a = a * a)
    if (b & 1) c = c * a;
  return c;
}
long long A[30][2], B[30][2];
long long con[30];
int cnta, cntb, cnt;
long long n, m, s, ans;
void divide() {
  long long x = n;
  cnta = cntb = 0;
  for (int i = 1; i <= tot && x > 1; i++)
    if (x % pri[i] == 0) {
      A[++cnta][0] = pri[i];
      A[cnta][1] = 0;
      for (; x % pri[i] == 0; x /= pri[i]) A[cnta][1]++;
    }
  x = s;
  for (int i = 1; i <= tot && x > 1; i++)
    if (x % pri[i] == 0) {
      B[++cntb][0] = pri[i];
      B[cntb][1] = 0;
      for (; x % pri[i] == 0; x /= pri[i]) B[cntb][1]++;
    }
}
void get_con() {
  cnt = 0;
  for (int i = 1; i <= cnta; i++) {
    int w = -1;
    for (int j = 1; j <= cntb; j++)
      if (A[i][0] == B[j][0]) {
        w = B[j][1];
        break;
      }
    if (w < 0)
      con[++cnt] = A[i][0];
    else if (w < A[i][1])
      con[++cnt] = qpow(A[i][0], w + 1);
  }
}
void step1(int p = 1, long long x = 1) {
  if (p > cntb) {
    if (x <= n) ans++;
    return;
  }
  for (int i = 0; i <= B[p][1]; i++, x *= B[p][0]) step1(p + 1, x);
}
void step2(int p = 1, int sel = 0, long long val = m) {
  if (p > cnt) {
    if (sel & 1)
      ans -= val;
    else
      ans += val;
    return;
  }
  step2(p + 1, sel, val);
  step2(p + 1, sel + 1, val / con[p]);
}
void solve() {
  int a, b, c;
  scanf("%d%d%d", &a, &b, &c);
  n = (long long)a * (long long)b * (long long)c;
  scanf("%d%d%d", &a, &b, &c);
  m = (long long)a * (long long)b * (long long)c;
  scanf("%d%d%d", &a, &b, &c);
  s = (long long)a * (long long)b * (long long)c;
  s <<= 1;
  divide();
  get_con();
  ans = 0;
  step1();
  step2();
  printf("%I64d\n", ans);
}
int main() {
  getpri();
  int T;
  for (scanf("%d", &T); T--; solve())
    ;
  return 0;
}
