注意用空间换时间
//hdu4548
#include <iostream>
#include <cstring>
#include<cstdio>
using namespace std;
#define MAX 1000005
bool s[MAX];
int ans[MAX];
int main()
{
//2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
int i,t,l,r,cases=0;
memset(s,0,MAX);
memset(ans,0,MAX);
s[1]=1;
for( i=2;i<=1000000;i++){
if(s[i]==0){//等于0是素数
for(int j=i+i;j<=1000000;j+=i){
s[j]=1;
}
int tem=i,a=0;
while(tem!=0){
a+=tem%10;
tem=tem/10;
}
if(s[a]==0){//各位数之和为素数
ans[i]=ans[i-1]+1;
}
else{
ans[i]=ans[i-1];
}
}
else{
ans[i]=ans[i-1];
}
}
scanf("%d",&t);
while(t--){
scanf("%d%d",&l,&r);
cases++;
cout<<"Case #"<<cases<<": "<<ans[r]-ans[l-1]<<endl;
}
return 0;
}