#include <bits/stdc++.h>
using namespace std;
vector <int> primes;
long long gcd (long long a,long long b) {
if (b == 0) return a;
return(a % b == 0 ? b : gcd(b,a % b));
}
long long find (long long n, int m) {
int i,j,c;
long long lcm,res;
res = 0;
for (i = 1; i < (1 << m); i++) {
c = 0;
lcm = 1;
for (j = 0; j < m; j++) {
if (((i >> j) & 1) == 1) {
c++;
lcm = (lcm * primes[j]) / gcd(lcm,primes[j]);
}
}
if (c % 2 == 1) {
res = res + n / lcm;
} else {
res = res - n / lcm;
}
}
return res;
}
long long solve (int n,long long l,long long r) {
int i,j,flag,m;
long long res;
primes.clear();
for (i = 2; i <= n; i++) {
flag = 0;
for (j = 0; j < primes.size(); j++) {
if (i % primes[j] == 0) {
flag = 1;
break;
}
}
if (flag == 0) {
primes.push_back(i);
}
}
m = primes.size();
res = find(r,m) - find(l - 1,m);
return res;
}
int main()
{
int t;
scanf("%d",&t);
while (t --) {
int n;
long long l,r,ans;
scanf("%d",&n);
scanf("%lld%lld",&l,&r);
ans = solve(n,l,r);
printf("%lld\n",ans);
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdmVjdG9yIDxpbnQ+IHByaW1lczsKCmxvbmcgbG9uZyBnY2QgKGxvbmcgbG9uZyBhLGxvbmcgbG9uZyBiKSB7CglpZiAoYiA9PSAwKSByZXR1cm4gYTsKCXJldHVybihhICUgYiA9PSAwID8gYiA6IGdjZChiLGEgJSBiKSk7Cn0KCmxvbmcgbG9uZyBmaW5kIChsb25nIGxvbmcgbiwgaW50IG0pIHsKCWludCBpLGosYzsKCWxvbmcgbG9uZyBsY20scmVzOwoJcmVzID0gMDsKCWZvciAoaSA9IDE7IGkgPCAoMSA8PCBtKTsgaSsrKSB7CgkJYyA9IDA7CgkJbGNtID0gMTsKCQlmb3IgKGogPSAwOyBqIDwgbTsgaisrKSB7CgkJCWlmICgoKGkgPj4gaikgJiAxKSA9PSAxKSB7CgkJCQljKys7CgkJCQlsY20gPSAobGNtICogcHJpbWVzW2pdKSAvIGdjZChsY20scHJpbWVzW2pdKTsKCQkJfQoJCX0KCQlpZiAoYyAlIDIgPT0gMSkgewoJCQlyZXMgPSByZXMgKyBuIC8gbGNtOwoJCX0gZWxzZSB7CgkJCXJlcyA9IHJlcyAtIG4gLyBsY207CgkJfQoJfQoJcmV0dXJuIHJlczsKfQoKbG9uZyBsb25nIHNvbHZlIChpbnQgbixsb25nIGxvbmcgbCxsb25nIGxvbmcgcikgewoJaW50IGksaixmbGFnLG07Cglsb25nIGxvbmcgcmVzOwoJcHJpbWVzLmNsZWFyKCk7Cglmb3IgKGkgPSAyOyBpIDw9IG47IGkrKykgewoJCWZsYWcgPSAwOwoJCWZvciAoaiA9IDA7IGogPCBwcmltZXMuc2l6ZSgpOyBqKyspIHsKCQkJaWYgKGkgJSBwcmltZXNbal0gPT0gMCkgewoJCQkJZmxhZyA9IDE7CgkJCQlicmVhazsKCQkJfQoJCX0KCQlpZiAoZmxhZyA9PSAwKSB7CgkJCXByaW1lcy5wdXNoX2JhY2soaSk7CgkJfQoJfQoJbSA9IHByaW1lcy5zaXplKCk7CglyZXMgPSBmaW5kKHIsbSkgLSBmaW5kKGwgLSAxLG0pOwoJcmV0dXJuIHJlczsKfQoKaW50IG1haW4oKQp7CglpbnQgdDsKCXNjYW5mKCIlZCIsJnQpOwoJd2hpbGUgKHQgLS0pIHsKCQlpbnQgbjsKCQlsb25nIGxvbmcgbCxyLGFuczsKCQlzY2FuZigiJWQiLCZuKTsKCQlzY2FuZigiJWxsZCVsbGQiLCZsLCZyKTsKCQlhbnMgPSBzb2x2ZShuLGwscik7CgkJcHJpbnRmKCIlbGxkXG4iLGFucyk7Cgl9CglyZXR1cm4gMDsKfQo=