#include <bits/stdc++.h>
using namespace std;
// const int MOD = 1e9 + 7;
const int MX = 1e6;
long long dp[MX + 1];
long long divisors[MX + 1];
// unordered_map<int,long long> mp;
// long long again_solve(int n) {
// if(mp[n]) return mp[n];
// long long res = 0;
// long long i = 1;
// while (i <= n) {
// long long q = n / i;
// long long j = n / q;
// res += q * (j - i + 1);
// i = j + 1;
// }
// return mp[n] = res;
// }
// void solve(){
// int n;
// cin >> n;
// cout << again_solve(n) - n << endl;
// }
void solve(){
int n;
cin >> n;
long long ans = 0;
for(int i = 1 ; i <= min((int)1e6,n) ; i++){
ans += n / i - 1;
}
if(n <= 1e6){
cout << ans << endl;
return;
}
for(int i = n / (int)1e6 + 1 ; i >= 1 ; i--){
ans += max(0,(n / i - max((int)1e6+1,n / (i + 1))));
}
// if(n <= MX) cout << dp[n] << endl;
// else{
// long long ans = dp[MX] - (n - MX);
// int j = MX + 1;
// while(n / j == n / MX){
// ans += n / j;
// j++;
// }
// cout << ans << endl;
// for(int k = n / j ; k >= 1 ; k--){
// ans += k * (n / k - n / (k + 1));
// }
// cout << ans << endl;
// }
cout << int(ans - (n - 1e6) + 1) << endl;
}
int main()
{
int t = 1;
cin >> t;
for(int i = 1; i <= MX ; i++){
for(int j = i ; j <= MX ; j += i){
divisors[j]++;
}
}
dp[1] = 0;
for(int i = 2 ; i <= MX ; i++){
dp[i] = dp[i-1] + divisors[i] - 1;
}
while(t--) solve();
return 0;
}