#include <iostream>
#include <cstring>
using namespace std;
bool sieve[1000001];
int main() {
memset(sieve, true, sizeof(sieve));
sieve[1] = false;
for(int i = 2; i*i <= 1000001; i++)
if(sieve[i])
for(int j = 2*i; j <= 1000001; j+=i)
sieve[j] = false;
int T;
cin >> T;
while(T--){
int N, count = 0;
cin >> N;
for(int i = 1; i <= N; i++)
if(sieve[i])
count++;
cout << count << endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0cmluZz4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmJvb2wgc2lldmVbMTAwMDAwMV07CgppbnQgbWFpbigpIHsKCW1lbXNldChzaWV2ZSwgdHJ1ZSwgc2l6ZW9mKHNpZXZlKSk7CglzaWV2ZVsxXSA9IGZhbHNlOwoJZm9yKGludCBpID0gMjsgaSppIDw9IDEwMDAwMDE7IGkrKykKCQlpZihzaWV2ZVtpXSkKCQkJZm9yKGludCBqID0gMippOyBqIDw9IDEwMDAwMDE7IGorPWkpCgkJCQlzaWV2ZVtqXSA9IGZhbHNlOwoJaW50IFQ7CgljaW4gPj4gVDsKCXdoaWxlKFQtLSl7CgkJaW50IE4sIGNvdW50ID0gMDsKCQljaW4gPj4gTjsKCQlmb3IoaW50IGkgPSAxOyBpIDw9IE47IGkrKykKCQkJaWYoc2lldmVbaV0pCgkJCQljb3VudCsrOwoJCWNvdXQgPDwgY291bnQgPDwgZW5kbDsJCgl9CgkKCXJldHVybiAwOwp9