//该代码通过率只有70%,因为大数的缘故卡了,原因不知道;
#include <iostream>
#include<cmath>
using namespace std;
long long T ;
long long n1,n2;
long long L,R;
long long f(long long n,long long m)
{
return round(1.0*(n-m)*(n*n+n*m+m*m)/6+1.0*(n-m)*(n+m)/2+1.0*(n-m)/3);
}
long long find(long long x)
{long long low=0,high=x+1;
while(low+1<high)
{
long long mid=(low+high)/2;
if(mid*(mid+1)<=x)
low=mid;
else
high=mid;
}
if(low*(low+1)==x)
return low;
else
return low+1;
}
int main()
{
scanf("%lld",&T);
while(T--)
{
scanf("%lld%lld",&L,&R);
n1=find(2*L);
n2=find(2*R);
// cout<<"{"<<n1<<" "<<n2<<"}"<<endl;
long long ans1=L-n1*(n1-1)/2;
long long ans2=R-n2*(n2-1)/2;
//cout<<ans1<<" "<<ans2<<endl;
long long ans=f(n2,n1-1);
//cout<<"{}"<<f(n2,n1-1)<<endl;
ans-=(ans1-1)*ans1/2;
ans-=(n2-ans2)*(ans2+1+n2)/2;
printf("%lld\n",ans);
}
return 0;
}