#include <bits/stdc++.h>
using namespace std;
set< long long int > primes;
int fac[5000003];
void sieve(long long int n)
{
long long int i,j,k;
n=n/2;
bool *b=(bool*)malloc(n*sizeof(bool));
primes.insert(2);
fac[2]=1;
for(i=0;i<n;i++)
{
b[i]=true;
}
for(i=0;i<n;i++)
{
if(b[i]==true)
{
k=2*i+3;
primes.insert(k);
fac[k]=1;
for(j=2*i*i+6*i+3;j<n;j+=k)
{
b[j]=false;
}
}
}
free(b);
return;
}
int cal(int n)
{
if(fac[n]!=0)
return fac[n];
else
{
set< long long int >::iterator it=primes.begin();
while(n%(*it)!=0)
{
it++;
}
return 1+fac[n/(*it)];
}
}
int main()
{
int t,n,i,j,k,l;
cout << 1 << fac[3678] << " " << fac[3236] << endl;
for(i=1;i<=5000000;i++)
{
fac[i]=0;
}
sieve(5000000);
cout << 3;
for(i=1;i<=5000000;i++)
{
fac[i]=cal(i);
}
cin >> t;
cout << 1;
while(t--)
{
cin >> j >> k;l=0;
for(i=k+1;i<=j;i++)
l+=fac[i];
cout << l;
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc2V0PCBsb25nIGxvbmcgaW50ID4gcHJpbWVzOwppbnQgZmFjWzUwMDAwMDNdOwp2b2lkIHNpZXZlKGxvbmcgbG9uZyBpbnQgbikKewogICAgbG9uZyBsb25nIGludCBpLGosazsKICAgIG49bi8yOwogICAgYm9vbCAqYj0oYm9vbCopbWFsbG9jKG4qc2l6ZW9mKGJvb2wpKTsKICAgIHByaW1lcy5pbnNlcnQoMik7CiAgICBmYWNbMl09MTsKICAgIGZvcihpPTA7aTxuO2krKykKICAgIHsKICAgICAgICBiW2ldPXRydWU7CiAgICB9CiAgICBmb3IoaT0wO2k8bjtpKyspCiAgICB7CiAgICAgICAgaWYoYltpXT09dHJ1ZSkKICAgICAgICB7CiAgICAgICAgICAgIGs9MippKzM7CiAgICAgICAgICAgIHByaW1lcy5pbnNlcnQoayk7CiAgICAgICAgICAgIGZhY1trXT0xOwogICAgICAgICAgICBmb3Ioaj0yKmkqaSs2KmkrMztqPG47ais9aykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgYltqXT1mYWxzZTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBmcmVlKGIpOwogICAgcmV0dXJuOwp9CgppbnQgY2FsKGludCBuKQp7CiAgICBpZihmYWNbbl0hPTApCiAgICByZXR1cm4gZmFjW25dOwogICAgZWxzZQogICAgewogICAgICAgIHNldDwgbG9uZyBsb25nIGludCA+OjppdGVyYXRvciBpdD1wcmltZXMuYmVnaW4oKTsKICAgICAgICB3aGlsZShuJSgqaXQpIT0wKQogICAgICAgIHsKICAgICAgICAgICAgaXQrKzsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIDErZmFjW24vKCppdCldOwogICAgfQp9CmludCBtYWluKCkKewogICAgaW50IHQsbixpLGosayxsOwogICAgY291dCA8PCAxIDw8IGZhY1szNjc4XSA8PCAiICIgPDwgZmFjWzMyMzZdIDw8IGVuZGw7CiAgICBmb3IoaT0xO2k8PTUwMDAwMDA7aSsrKQogICAgewogICAgICAgIGZhY1tpXT0wOwogICAgfQogICAgc2lldmUoNTAwMDAwMCk7CiAgICBjb3V0IDw8IDM7CiAgICBmb3IoaT0xO2k8PTUwMDAwMDA7aSsrKQogICAgewogICAgICAgIGZhY1tpXT1jYWwoaSk7CiAgICB9CiAgICBjaW4gPj4gdDsKICAgIGNvdXQgPDwgMTsKICAgIHdoaWxlKHQtLSkKICAgIHsKICAgICAgICBjaW4gPj4gaiA+PiBrO2w9MDsKICAgICAgICBmb3IoaT1rKzE7aTw9ajtpKyspCiAgICAgICAgbCs9ZmFjW2ldOwogICAgICAgIGNvdXQgPDwgbDsKICAgIH0KICAgIHJldHVybiAwOwp9Cg==