#include <bits/stdc++.h>
#define ll long long
using namespace std;
int tc;
ll x,y;
vector<ll>vec;
ll calc(int x)
{
int pos=upper_bound(vec.begin(),vec.end(),x)-vec.begin();
return pos;
}
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
freopen("puteri.inp","r",stdin);
// freopen("puteri.out","w",stdout);
for(ll i=2;i<=1000000;i++)
{
ll cur=i*i;
int d=2;
while(cur<=1e18/i)
{
cur=cur*i;
d++;
if(d%2==1)vec.push_back(cur);
}
}
sort(vec.begin(),vec.end());
vec.erase(unique(vec.begin(),vec.end()),vec.end());
cin>>tc;
while(tc--)
{
cin>>x>>y;
ll u=calc(y)-calc(x-1);
y=sqrt(y);
ll t=sqrt(x);
if(t*t!=x)t++;
cout<<u+y-t+1<<'\n';
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgbGwgbG9uZyBsb25nCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgdGM7CmxsIHgseTsKdmVjdG9yPGxsPnZlYzsKbGwgY2FsYyhpbnQgeCkKewogICAgaW50IHBvcz11cHBlcl9ib3VuZCh2ZWMuYmVnaW4oKSx2ZWMuZW5kKCkseCktdmVjLmJlZ2luKCk7CiAgICByZXR1cm4gcG9zOwp9CmludCBtYWluKCkKewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsKICAgIGNpbi50aWUoMCk7Y291dC50aWUoMCk7CiAgICBmcmVvcGVuKCJwdXRlcmkuaW5wIiwiciIsc3RkaW4pOwovLyAgICBmcmVvcGVuKCJwdXRlcmkub3V0IiwidyIsc3Rkb3V0KTsKICAgIGZvcihsbCBpPTI7aTw9MTAwMDAwMDtpKyspCiAgICB7CiAgICAgICAgbGwgY3VyPWkqaTsKICAgICAgICBpbnQgZD0yOwogICAgICAgIHdoaWxlKGN1cjw9MWUxOC9pKQogICAgICAgIHsKICAgICAgICAgICAgY3VyPWN1cippOwogICAgICAgICAgICBkKys7CiAgICAgICAgICAgIGlmKGQlMj09MSl2ZWMucHVzaF9iYWNrKGN1cik7CiAgICAgICAgfQogICAgfQogICAgc29ydCh2ZWMuYmVnaW4oKSx2ZWMuZW5kKCkpOwogICAgdmVjLmVyYXNlKHVuaXF1ZSh2ZWMuYmVnaW4oKSx2ZWMuZW5kKCkpLHZlYy5lbmQoKSk7CiAgICBjaW4+PnRjOwogICAgd2hpbGUodGMtLSkKICAgIHsKICAgICAgICBjaW4+Png+Pnk7CiAgICAgICAgbGwgdT1jYWxjKHkpLWNhbGMoeC0xKTsKICAgICAgICB5PXNxcnQoeSk7CiAgICAgICAgbGwgdD1zcXJ0KHgpOwogICAgICAgIGlmKHQqdCE9eCl0Kys7CiAgICAgICAgY291dDw8dSt5LXQrMTw8J1xuJzsKICAgIH0KICAgIHJldHVybiAwOwp9Cgo=