import sys import io, os #input = io.BytesIO(os.read(0,os.fstat(0).st_size)).readline def update(v,w): # index vにwを加える while v<=LEN: BIT[v]+=w v+=(v&(-v)) # v&(-v)で、最も下の立っているビット. 自分を含む大きなノードへ. たとえばv=3→v=4 def getvalue(v): # [1,v]の区間の和を求める ANS=0 while v!=0: ANS+=BIT[v] v-=(v&(-v)) # 自分より小さい自分の和を構成するノードへ. たとえばv=14→v=12へ return ANS LEN=1<<20 A=[0]*(LEN+1) BIT=[0]*(LEN+1) Q=int(input()) LANS=[] for tests in range(Q): i,L,R=list(map(int,input().split())) j=1 while j*j<=i: k=i//j if A[k]==0: A[k]=1 update(k,1) else: A[k]=0 update(k,-1) j+=1 l=i//j for k in range(1,l+1): if A[k]==0: A[k]=1 update(k,1) else: A[k]=0 update(k,-1) ANS=getvalue(R)-getvalue(L-1) LANS.append(ANS) print("\n".join(map(str,LANS)))