#include <bits/stdc++.h>
using namespace std;
#define int int64_t
#define ll long long
#define el endl;
#define be begin()
#define en end()
#define sz(x) (int)x.size()
#define all(n) n.begin(), n.end()
#define rall(n) n.rbegin(), n.rend()
const int mod = 1e9 + 7, INF = 0x3f3f3f3f, N = 1e5 + 5;
int R4[] = {1, 0, -1, 0};
int C4[] = {0, 1, 0, -1};
int R8[] = {-1, -1, -1, 0, 0, 1, 1, 1};
int C8[] = {-1, 0, 1, -1, 1, -1, 0, 1};
void RUN()
{
ios_base::sync_with_stdio(false), cout.tie(NULL), cin.tie(NULL);
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
#endif
}
template <typename T> istream& operator>> (istream& in, vector <T> &v)
{
for (auto &i : v) in >> i;
return in;
}
void solve()
{
int t, l, r; cin >> t >> l >> r;
int sq1 = sqrt(r), sq2 = sqrt(l);
int ans = sq1 - sq2;
if (sq2 * sq2 == l) ans++;
if (t == 1)
{
cout << ans << '\n';
}
else
{
cout << (r - l + 1) - ans << '\n';
}
}
int32_t main()
{
RUN();
int T = 1;
cin >> T;
while (T--) solve();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgaW50IGludDY0X3QKI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSBlbCBlbmRsOwojZGVmaW5lIGJlIGJlZ2luKCkKI2RlZmluZSBlbiBlbmQoKQojZGVmaW5lIHN6KHgpIChpbnQpeC5zaXplKCkKI2RlZmluZSBhbGwobikgbi5iZWdpbigpLCBuLmVuZCgpCiNkZWZpbmUgcmFsbChuKSBuLnJiZWdpbigpLCBuLnJlbmQoKQpjb25zdCBpbnQgbW9kID0gMWU5ICsgNywgSU5GID0gMHgzZjNmM2YzZiwgTiA9IDFlNSArIDU7CmludCBSNFtdID0gezEsIDAsIC0xLCAwfTsKaW50IEM0W10gPSB7MCwgMSwgMCwgLTF9OwppbnQgUjhbXSA9IHstMSwgLTEsIC0xLCAwLCAwLCAxLCAxLCAxfTsKaW50IEM4W10gPSB7LTEsICAwLCAgMSwgLTEsIDEsIC0xLCAwLCAxfTsKCnZvaWQgUlVOKCkKewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSksIGNvdXQudGllKE5VTEwpLCBjaW4udGllKE5VTEwpOwogICAgI2lmbmRlZiBPTkxJTkVfSlVER0UKICAgIGZyZW9wZW4oImlucHV0LnR4dCIsICJyIiwgc3RkaW4pOwogICAgZnJlb3Blbigib3V0cHV0LnR4dCIsICJ3Iiwgc3Rkb3V0KTsKICAgICNlbmRpZgp9Cgp0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gaXN0cmVhbSYgb3BlcmF0b3I+PiAoaXN0cmVhbSYgaW4sIHZlY3RvciA8VD4gJnYpCnsKICAgIGZvciAoYXV0byAmaSA6IHYpIGluID4+IGk7CiAgICByZXR1cm4gaW47Cn0KCnZvaWQgc29sdmUoKQp7CiAgICBpbnQgdCwgbCwgcjsgY2luID4+IHQgPj4gbCA+PiByOwogICAgaW50IHNxMSA9IHNxcnQociksIHNxMiA9IHNxcnQobCk7CiAgICBpbnQgYW5zID0gc3ExIC0gc3EyOwogICAgaWYgKHNxMiAqIHNxMiA9PSBsKSBhbnMrKzsKICAgIGlmICh0ID09IDEpCiAgICB7CiAgICAgICAgY291dCA8PCBhbnMgPDwgJ1xuJzsKICAgIH0KICAgIGVsc2UKICAgIHsKICAgICAgICBjb3V0IDw8IChyIC0gbCArIDEpIC0gYW5zIDw8ICdcbic7CiAgICB9Cn0KCmludDMyX3QgbWFpbigpCnsKICAgIFJVTigpOwogICAgCiAgICBpbnQgVCA9IDE7CiAgICBjaW4gPj4gVDsKICAgIHdoaWxlIChULS0pIHNvbHZlKCk7CiAgICByZXR1cm4gMDsKfQ==