#include<bits/stdc++.h>
#define int long long
#define DEBUG puts("fangzichangakioi");
using namespace std;
inline int read()
{
int s=0,w=1;
char c=getchar();
while(c<'0'||c>'9')
{
if(c=='-')w=-1;
c=getchar();
}
while(c>='0'&&c<='9')s=(s<<3)+(s<<1)+(c^48),c=getchar();
return s*w;
}
inline void print(int x)
{
if(x<0)x=-x,putchar('-');
if(x>=10)print(x/10);
putchar(x%10+48);
}
int q,l,r,f[110],lim;
inline int qpow(int a,int b,int x)
{
int res=1;
while(b)
{
if(b&1){
res*=a;
if(res>x)return x+1;
}
a*=a;
b>>=1;
if(b&&a>x)return x+1;
}
return res;
}
inline int Sqrt(int x,int y)
{
int l=1,r=x,res=0;
while(l<=r)
{
int mid=l+r>>1;
if(qpow(mid,y,x)<=x)
{
res=mid;
l=mid+1;
}
else r=mid-1;
}
return res;
}
inline int query(int x)
{
int ans=0;
memset(f,0,sizeof(f));
for(int a=2;a<60;a++)
{
if(f[a]==1)continue;
if(qpow(2,a,x)>x)break;
int cnt=Sqrt(x,a);
ans+=(1ll-f[a])*cnt;
for(int j=a*2;j<60;j+=a)
{
f[j]+=(1ll-f[a]);
}
}
return ans;
}
signed main()
{
q=read();
while(q--)
{
l=read();
r=read();
int ans=query(r)-query(l-1);
print(ans);
puts("");
}
}