#include <bits/stdc++.h>

using namespace std;

#define MOD 1000000007

int t, n, x[100005], par[1000005], tot, ans;
bool np[1000005];
vector<int> p;
int ta;

int find(int a) {
    return par[a] == a ? a : par[a] = find(par[a]);
}

int main() {
    for (int i = 2; i <= 1000000; i++)
        if (!np[i]) {
            p.push_back(i);
            if (i <= 1000)
                for (int j = i * i; j <= 1000000; j += i)
                    np[j] = 1;
        }
    scanf("%d", &t);
    while (t--) {
        tot = 0;
        scanf("%d", &n);
        for (int i = 0; i < n; i++) {
            scanf("%d", x + i);
            if (x[i] == 1) {
                tot++;
            } else if (!par[x[i]]) {
                par[x[i]] = x[i];
                tot++;
            }
        }
        for (int i : p) {
            ta = 0;
            for (int j = i; j <= 1000000; j += i)
                if (par[j])
                    if (ta) {
                        if (ta != find(j)) {
                            tot--;
                            par[par[j]] = ta;
                        }
                    } else
                        ta = find(j);
        }
        ans = 1;
        while (tot--)
            ans = ans * 2 % MOD;
        ans = (ans + MOD - 2) % MOD;
        printf("%d\n", ans);
        for (int i = 0; i < n; i++)
            par[x[i]] = 0;
    }
    return 0;
}