/*
判断一个数是否是素数,只要判断这个数有没有在[2,sqrt(n)]区间的因子
同样,对于大数短区间的筛选,同样可以用这种判断方式,
先筛出sqrt(n)范围内的素数,然后用这些素数去筛出区间内的因子
*/
#include<bits/stdc++.h>
using namespace std;
#define maxn 1000000
#define ll long long
int v[maxn],prime[maxn],m;
void init(){
memset(v,0,sizeof v);
memset(prime,0,sizeof prime);
m=0;
for(int i=2;i<maxn;i++){
if(v[i]==0){
v[i]=i;
prime[++m]=i;
}
for(int j=1;j<=m;j++){
if(prime[j]>v[i] || prime[j]*i>maxn)break;
v[i*prime[j]]=prime[j];
}
}
}
int flag[maxn];
ll solve(ll a,ll b){
memset(flag,0,sizeof flag);
for(int i=1;i<=m;i++){
if(prime[i]*prime[i]>b)break;
ll s=(a+prime[i]-1)/prime[i];//s是区间内第一个prime[i]的倍数
if(s<2)s=2;//如果本身就是这个素数,即s==1,那么这个倍数就不用删掉就不用删掉
for(s=prime[i]*s;s<=b;s+=prime[i])
flag[s-a]=1;
}
ll ans=0;
for(int i=0;i<=b-a;i++)
ans+=1-flag[i];
return ans;
}
int main(){
int T;
init();
cin>>T;
for(int tt=1;tt<=T;tt++){
ll a,b;
cin>>a>>b;
ll ans=solve(a,b);
if(a==1)ans--;
printf("Case %d: %lld\n",tt,ans);
}
}