class Solution:
def find_prime(n: int):
A = [True] * (n + 1)
A[0] = A[1] = False
for i in range(2, int(n**0.5) + 1):
if A[i]:
j = i * i
while j <= n:
A[j] = False
j += i
primes = [i for i in range(2, n + 1) if A[i]]
number=len(primes)
return number
x=int(input())
list_of_number=[int(input()) for v in range(x)]
for i in list_of_number:
x=Solution.find_prime(i)
print(x)
# Without Class
def find_prime(n: int):
if n <= 1:
return 0
A = [True] * (n + 1)
A[0] = A[1] = False
for i in range(2, int(n**0.5) + 1):
if A[i]:
j = i * i
while j <= n:
A[j] = False
j += i
primes = [i for i in range(2, n + 1) if A[i]]
number=len(primes)
return number
x=int(input())
list_of_number=[int(input()) for v in range(x)]
for i in list_of_number:
x=find_prime(i)
print(x)