#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <inttypes.h>
#define MX 1000000
static uint64_t dp[MX+1];
static uint32_t divisors[MX+1];
static void init_dp(void) {
for (int i = 1; i <= MX; i++) {
for (int j = i; j <= MX; j += i) {
divisors[j]++;
}
}
dp[0] = 0;
dp[1] = 0;
for (int n = 2; n <= MX; n++) {
dp[n] = dp[n-1] + (uint64_t)divisors[n] - 1;
}
}
static uint64_t sum_floor_div(uint64_t n) {
uint64_t res = 0;
uint64_t i = 1;
while (i <= n) {
uint64_t q = n / i;
uint64_t j = n / q;
res += q * (j - i + 1);
i = j + 1;
}
return res;
}
int main(void) {
init_dp();
int t;
if (scanf("%d", &t) != 1) return 0;
while (t--) {
uint64_t n;
scanf("%" SCNu64, &n);
if (n <= MX) {
printf("%" PRIu64 "\n", dp[n]);
} else {
uint64_t s = sum_floor_div(n);
printf("%" PRIu64 "\n", s - n);
}
}
return 0;
}