#include<bits/stdc++.h>
using namespace std;
int main(){
long long temp=1;
set<long long>P;
map<long long,int>Q;
P.insert(1);
int c=1;
Q[temp]=c;
while(temp<1e13){
long long z=floor(sqrt(c));
z*=c;
z+=((c+1)/2);
temp+=z;
c++;
P.insert(temp);
Q[temp]=c;
}
int t;
cin>>t;
while(t--){
long long l,r;
cin>>l>>r;
if((Q[l] && Q[r])){
int ans=(Q[r]-Q[l])+1;
cout<<ans<<endl;
continue;
}
auto it=lower_bound(P.begin(),P.end(),l);
long long temp=*it;
auto it2=lower_bound(P.begin(),P.end(),r);
long long temp2=*it2;
int z1=Q[temp];
if(temp>l){
z1--;
}
int z2=Q[temp2];
if(temp2>r){
z2--;
}
int ans=(z2-z1)+1;
cout<<ans<<endl;
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluKCl7CgogICAgCSAKICAgIGxvbmcgbG9uZyB0ZW1wPTE7CiAgICBzZXQ8bG9uZyBsb25nPlA7CiAgICBtYXA8bG9uZyBsb25nLGludD5ROwogICAgUC5pbnNlcnQoMSk7CiAgICBpbnQgYz0xOwogICAgUVt0ZW1wXT1jOwogICAgd2hpbGUodGVtcDwxZTEzKXsKICAgICAgICBsb25nIGxvbmcgej1mbG9vcihzcXJ0KGMpKTsKICAgICAgICB6Kj1jOwogICAgICAgIHorPSgoYysxKS8yKTsKICAgICAgICB0ZW1wKz16OwogICAgICAgIGMrKzsKICAgICAgICBQLmluc2VydCh0ZW1wKTsKICAgICAgICBRW3RlbXBdPWM7CiAgICB9CgogICAgaW50IHQ7CiAgICBjaW4+PnQ7CiAgICAKICAgIHdoaWxlKHQtLSl7CiAgICAgICAgbG9uZyBsb25nIGwscjsKICAgICAgICBjaW4+Pmw+PnI7CiAgICAgICAgCiAgICAgICAgaWYoKFFbbF0gJiYgUVtyXSkpewogICAgICAgICAgICBpbnQgYW5zPShRW3JdLVFbbF0pKzE7CiAgICAgICAgICAgIGNvdXQ8PGFuczw8ZW5kbDsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgfQogICAgICAgIGF1dG8gaXQ9bG93ZXJfYm91bmQoUC5iZWdpbigpLFAuZW5kKCksbCk7CiAgICAgICAgbG9uZyBsb25nIHRlbXA9Kml0OwogICAgICAgIAogICAgICAgIGF1dG8gaXQyPWxvd2VyX2JvdW5kKFAuYmVnaW4oKSxQLmVuZCgpLHIpOwogICAgICAgIGxvbmcgbG9uZyB0ZW1wMj0qaXQyOwogICAgICAgIAogICAgICAgIGludCB6MT1RW3RlbXBdOwogICAgICAgIGlmKHRlbXA+bCl7CiAgICAgICAgICB6MS0tOwogICAgICAgIH0KICAgICAgICAgICAKICAgICAgICBpbnQgejI9UVt0ZW1wMl07CiAgICAgICAgaWYodGVtcDI+cil7CiAgICAgICAgICAgIHoyLS07CiAgICAgICAgfQogICAgICAgICBpbnQgYW5zPSh6Mi16MSkrMTsKICAgICAgICAgY291dDw8YW5zPDxlbmRsOwoKICAgIH0KICAgIAoKfQ==