class BIT: def query(self, m): res = 0 while m > 0: res += self.bit[m] m -= m&(-m) return res def sum(self, a, b): return self.query(b)-self.query(a) def sumall(self): bitlen = self.bitlen-1 return self.query(bitlen) def add(self, m, x): m += 1 bitlen = len(self.bit) while m <= bitlen-1: self.bit[m] += x m += m&(-m) return def search(self, a): tmpsum = 0 i = 0 k = (self.bitlen-1).bit_length() while k >= 0: tmpk = 2**k if i+tmpk <= self.bitlen-1: if tmpsum+self.bit[i+tmpk] < a: tmpsum += self.bit[i+tmpk] i += tmpk k = k-1 return i+1 def __init__(self, a): self.bitlen = a+1 self.bit = [0]*(a+1) mx = 10 ** 6 xp = [0] * (mx + 1) bc = [[] for i in range(mx + 1)] for i in range(1, mx+1): for j in range(2*i, mx+1, i): xp[j] = i for i in range(1, mx+1): bc[xp[i]].append(i) Q = int(input()) bc_q = [[] for i in range(mx+1)] for i in range(Q): L, R = map(int,input().split()) bc_q[L].append((R, i)) bit = BIT(mx+1) ans = [0] * Q for i in range(mx+1): for r, c in bc_q[i]: ans[c] = bit.sum(i, r + 1) for j in bc[i]: bit.add(j, 1) print(*ans, sep = '\n')