/*Cho số tự nhiên N. Nhiệm vụ của bạn là hãy đếm tất cả các số từ 1 tới N mà có đúng ba ước số. Ví dụ N=100, ta có các số 4, 9, 25, 49.
Input:
Dòng đầu tiên đưa vào số lượng test T.
Những dòng kế tiếp đưa vào các bộ test. Mỗi bộ test là một số N.
T, N thỏa mãn rang buộc 1≤T≤100; 1≤N ≤1012.
Output:
Đưa ra kết quả mỗi test theo từng dòng.*/
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define ull unsigned long long
#define fi first
#define se second
const int mod = 1000000007;
int prime[10000001];
int p = 10000000;
void sang(){
for(int i = 0; i <= p; i++){
prime[i] = 1;
}
prime[0] = prime[1] = 0;
for(int i = 2; i <= sqrt(p); i++){
if(prime[i] == 1){
for(int j = i * i; j <= p; j += i){
prime[j] = 0;
}
}
}
}
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
sang();
int t; cin >> t;
while(t--){
ll n; cin >> n;
int dem = 0;
for(int i = 2; i <= sqrt(n); i++){
if(prime[i] == 1){
if(i * i <= n) ++dem;
}
}
cout << dem << endl;
}
return 0;
}
LypDaG8gc+G7kSB04buxIG5oacOqbiBOLiBOaGnhu4dtIHbhu6UgY+G7p2EgYuG6oW4gbMOgIGjDo3kgxJHhur9tIHThuqV0IGPhuqMgY8OhYyBz4buRIHThu6sgMSB04bubaSBOIG3DoCBjw7MgxJHDum5nIGJhIMaw4bubYyBz4buRLiBWw60gZOG7pSBOPTEwMCwgdGEgY8OzIGPDoWMgc+G7kSA0LCA5LCAyNSwgNDkuCgpJbnB1dDoKCkTDsm5nIMSR4bqndSB0acOqbiDEkcawYSB2w6BvIHPhu5EgbMaw4bujbmcgdGVzdCBULgpOaOG7r25nIGTDsm5nIGvhur8gdGnhur9wIMSRxrBhIHbDoG8gY8OhYyBi4buZIHRlc3QuIE3hu5dpIGLhu5kgdGVzdCBsw6AgbeG7mXQgc+G7kSBOLgpULCBOIHRo4buPYSBtw6NuIHJhbmcgYnXhu5ljIDHiiaRU4omkMTAwOyAx4omkTiDiiaQxMDEyLgpPdXRwdXQ6CgrEkMawYSByYSBr4bq/dCBxdeG6oyBt4buXaSB0ZXN0IHRoZW8gdOG7q25nIGTDsm5nLiovCgojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgdWxsIHVuc2lnbmVkIGxvbmcgbG9uZwojZGVmaW5lIGZpIGZpcnN0CiNkZWZpbmUgc2Ugc2Vjb25kCmNvbnN0IGludCBtb2QgPSAxMDAwMDAwMDA3OwoKaW50IHByaW1lWzEwMDAwMDAxXTsKaW50IHAgPSAxMDAwMDAwMDsKCnZvaWQgc2FuZygpewoJZm9yKGludCBpID0gMDsgaSA8PSBwOyBpKyspewoJCXByaW1lW2ldID0gMTsKCX0KCXByaW1lWzBdID0gcHJpbWVbMV0gPSAwOwoJZm9yKGludCBpID0gMjsgaSA8PSBzcXJ0KHApOyBpKyspewoJCWlmKHByaW1lW2ldID09IDEpewoJCQlmb3IoaW50IGogPSBpICogaTsgaiA8PSBwOyBqICs9IGkpewoJCQkJcHJpbWVbal0gPSAwOwoJCQl9CgkJfQoJfQp9CgppbnQgbWFpbigpewoJaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwoJY2luLnRpZShudWxscHRyKTsKCQoJc2FuZygpOwoJaW50IHQ7IGNpbiA+PiB0OwoJd2hpbGUodC0tKXsKCQlsbCBuOyBjaW4gPj4gbjsKCQlpbnQgZGVtID0gMDsKCQlmb3IoaW50IGkgPSAyOyBpIDw9IHNxcnQobik7IGkrKyl7CgkJCWlmKHByaW1lW2ldID09IDEpewoJCQkJaWYoaSAqIGkgPD0gbikgKytkZW07CgkJCX0KCQl9CgkJY291dCA8PCBkZW0gPDwgZW5kbDsKCX0KCXJldHVybiAwOwp9