#include<iostream>
#include<cstring>
#include<map>
#include<algorithm>
#include<vector>
using namespace std;
long long dp[500001];
int main()
{
long long n, i,m,j,sum,sum1,co;
map<long long, long long>v1;
vector<long long>v2;
dp[1] = 1;
memset(dp, -1, sizeof(dp));
for (i = 2; i <= 500001; i++)
{
m = i;
v1.clear();
co = 0;
while (1)
{
sum1 = 0;
for (j = 2; j*j <= m; j++)
{
if (m%j == 0)
{
while (m%j == 0)
{
m = m / j;
sum1 = sum1 + j;
}
}
}
if (m > 1)
{
sum1 = sum1 + m;
}
if (dp[sum1] != -1)
{
co = co + dp[sum1];
break;
}
if (v1[sum1] == 0)
{
co = co + 1;
v1[sum1] = 1;
m = sum1;
}
else
{
break;
}
}
if (sum1!=i)
co = co + 1;
dp[i] = co;
}
long long k = 0,t;
cin >> t;
while (t--)
{
cin >> n >> m;
for (i = n; i <= m; i++)
{
v2.push_back(dp[i]);
}
sort(v2.begin(), v2.end());
cout << "Case " << "#" << ++k << ":\n";
cout << v2[v2.size() - 1] << "\n";
v2.clear();
}
}
ICNpbmNsdWRlPGlvc3RyZWFtPgojaW5jbHVkZTxjc3RyaW5nPgojaW5jbHVkZTxtYXA+CiNpbmNsdWRlPGFsZ29yaXRobT4KI2luY2x1ZGU8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwpsb25nIGxvbmcgZHBbNTAwMDAxXTsKaW50IG1haW4oKQp7Cglsb25nIGxvbmcgbiwgaSxtLGosc3VtLHN1bTEsY287CgltYXA8bG9uZyBsb25nLCBsb25nIGxvbmc+djE7Cgl2ZWN0b3I8bG9uZyBsb25nPnYyOwoJZHBbMV0gPSAxOwoJbWVtc2V0KGRwLCAtMSwgc2l6ZW9mKGRwKSk7Cglmb3IgKGkgPSAyOyBpIDw9IDUwMDAwMTsgaSsrKQoJewoJCW0gPSBpOwoJCXYxLmNsZWFyKCk7CgkJY28gPSAwOwoJCXdoaWxlICgxKQoJCXsKCQkJc3VtMSA9IDA7CgkJCWZvciAoaiA9IDI7IGoqaiA8PSBtOyBqKyspCgkJCXsKCQkJCWlmIChtJWogPT0gMCkKCQkJCXsKCQkJCQl3aGlsZSAobSVqID09IDApCgkJCQkJewoJCQkJCQltID0gbSAvIGo7CgkJCQkJCXN1bTEgPSBzdW0xICsgajsKCQkJCQl9CgkJCQl9CgkJCX0KCgkJCWlmIChtID4gMSkKCQkJewoJCQkJc3VtMSA9IHN1bTEgKyBtOwoKCQkJfQoJCQlpZiAoZHBbc3VtMV0gIT0gLTEpCgkJCXsKCQkJCWNvID0gY28gKyBkcFtzdW0xXTsKCQkJCWJyZWFrOwoJCQl9CgkJCWlmICh2MVtzdW0xXSA9PSAwKQoJCQl7CgkJCQljbyA9IGNvICsgMTsKCQkJCXYxW3N1bTFdID0gMTsKCQkJCW0gPSBzdW0xOwoJCQl9CgkJCWVsc2UKCQkJewoJCQkJCgkJCQkKCQkJCWJyZWFrOwoJCQl9CgkJfQoJCQoJCWlmIChzdW0xIT1pKQoJCQljbyA9IGNvICsgMTsKCQlkcFtpXSA9IGNvOwoKCX0KCWxvbmcgbG9uZyBrID0gMCx0OwoJY2luID4+IHQ7Cgl3aGlsZSAodC0tKQoJewoJCWNpbiA+PiBuID4+IG07CgkJZm9yIChpID0gbjsgaSA8PSBtOyBpKyspCgkJewoJCQl2Mi5wdXNoX2JhY2soZHBbaV0pOwoJCX0KCQlzb3J0KHYyLmJlZ2luKCksIHYyLmVuZCgpKTsKCQljb3V0IDw8ICJDYXNlICIgPDwgIiMiIDw8ICsrayA8PCAiOlxuIjsKCQljb3V0IDw8IHYyW3YyLnNpemUoKSAtIDFdIDw8ICJcbiI7CgkJdjIuY2xlYXIoKTsKCX0KfQ==