#include <iostream>
#include<bits/stdc++.h>
#include <boost/multiprecision/cpp_int.hpp>
using namespace boost::multiprecision;
#define ll int128_t
#define int long long
#define endl "\n"
#define mod 1000000007
using namespace std;
int power(int a, int b) {
int res = 1;
while (b) {
if (b & 1) {
res = res * a % mod;
}
b >>= 1;
a = a * a % mod;
}
return res;
}
int inv(int a) {
return power(a, mod - 2);
}
int solve(int x,vector<int>&factor){
int n=factor.size();
int ans=0;
for(int i=1;i<power(2,n);i++){
int cnt=0;
int pro=1;
for(int j=0;j<n;j++){
if(i&(1<<j)){
cnt++;
pro*=factor[j];
}
}
if(cnt%2){
ans+=x/pro;
}
else ans-=x/pro;
}
// cout<<endl;
return ans;
}
int32_t main() {
cin.tie(0)->sync_with_stdio(false);
int t;cin>>t;
int a[100005]={0};
vector<int>prime;
prime.push_back(2);
for(int i=3;i<100005;i+=2){
if(a[i]==0){
prime.push_back(i);
for(int j=i*i;j<100005;j+=i){
a[j]=1;
}
}
}
while(t--){
int y,x1,x2;cin>>y>>x1>>x2;
y=abs(y);
if(y==1){
cout<<(x2-x1+1)<<endl;
continue;
}
vector<int>factor;
for(int i=0;i<prime.size();i++){
if(y%prime[i]==0){
factor.push_back(prime[i]);
}
}
if(factor.size()==0)factor.push_back(y);
// for(int i=0;i<factor.size();i++){
// cout<<factor[i]<<" ";
// }
// int ans1=solve(abs(x1)-1,factor);
// int ans2=solve(abs(x2),factor);
int ans=(x2-x1+1);
// cout<<ans1<<" "<<ans2<<" ";
if(x1>0){
int ans1=solve(abs(x1)-1,factor);
int ans2=solve(abs(x2),factor);
cout<<ans-abs(ans2-ans1)<<endl;
}
else if(x2>=0){
int ans1=solve(abs(x1),factor);
int ans2=solve(abs(x2),factor);
cout<<ans-abs(ans2+ans1)-1<<endl;
}
else {
int ans1=solve(abs(x2)-1,factor);
int ans2=solve(abs(x1),factor);
cout<<ans-abs(ans2-ans1)<<endl;
}
}
cerr << "Time : " << 1000 * ((double)clock()) / CLOCKS_PER_SEC << "ms" << endl;
return 0;
}