// Arup Guha
// 6/15/2023
// Solution to Kattis Problem: Non-prime factors
// https://open.kattis.com/problems/nonprimefactors

using namespace std;
#include <bits/stdc++.h>

const int MAX = 2000001;

int main() {

    // For fast I/O.
    cin.tie(0)->sync_with_stdio(0);

    vector<int> minP(MAX, -1);
    vector<int> numP(MAX, 0);
    vector<int> numD(MAX);

    // Like prime sieve.
    for (int i=2; i<MAX; i++) {

        // Skip over non-primes.
        if (minP[i] != -1) continue;

        // Assigning each item its minimum prime.
        for (int j=i; j<MAX; j+=i) {
            if (minP[j] == -1)
                minP[j] = i;

            // Another prime factor of j.
            numP[j]++;
        }
    }

    // Do the rest of the primes.
    for (int i=2; i<MAX; i++)
        if (minP[i] == -1)
            minP[i] = i;

    numD[1] = 1;
    numD[2] = 2;
    for (int i=3; i<MAX; i++) {

        // Divide out all copies of the min prime.
        int prev = i, exp = 0;
        while (prev%minP[i] == 0) {
            prev /= minP[i];
            exp++;
        }

        // We can build this answer from prev's answer.
        numD[i] = numD[prev]*(exp+1);
    }

    int q;
    cin >> q;

    // Answer queries.
    for (int i=0; i<q; i++) {
        int x;
        cin >> x;
        cout << numD[x]-numP[x] << "\n";
    }

    return 0;
}
