#include<stdio.h>
#define MAX 1000005
int m[MAX],b[100000];
int main()
{
int i,j,t,sum,k,l,r,flag,n=1;
k=0;
for(i=1; i<MAX; i++)
m[i]=0;
m[1]=1;
for(i=2; i<MAX; i++)
if(m[i]==0)
for(j=i+i; j<MAX; j=j+i)
m[j]=1; //打表,使素数存于数组m中,且m[i]==0时为素数
for(i=2; i<MAX; i++)
if(m[i]==0)
{
sum=i/1000000+i/100000%10+i/10000%10+i/1000%10+i/100%10+i/10%10+i%10; //求一个数各位数字和的巧妙方法
if(m[sum]==0)
b[k]=i,k++; //找到美素数,存于数组b中,数组b即是0到1000000的美素数;
}
scanf("%d",&t);
while(t--)
{
flag=0;
scanf("%d%d",&l,&r);
for(i=0; i<=k; i++)
if(b[i]>=l&&b[i]<=r)
flag++;
printf("Case #%d: %d\n",n,flag);
n++;
}
return 0;
}
#define MAX 1000005
int m[MAX],b[100000];
int main()
{
int i,j,t,sum,k,l,r,flag,n=1;
k=0;
for(i=1; i<MAX; i++)
m[i]=0;
m[1]=1;
for(i=2; i<MAX; i++)
if(m[i]==0)
for(j=i+i; j<MAX; j=j+i)
m[j]=1; //打表,使素数存于数组m中,且m[i]==0时为素数
for(i=2; i<MAX; i++)
if(m[i]==0)
{
sum=i/1000000+i/100000%10+i/10000%10+i/1000%10+i/100%10+i/10%10+i%10; //求一个数各位数字和的巧妙方法
if(m[sum]==0)
b[k]=i,k++; //找到美素数,存于数组b中,数组b即是0到1000000的美素数;
}
scanf("%d",&t);
while(t--)
{
flag=0;
scanf("%d%d",&l,&r);
for(i=0; i<=k; i++)
if(b[i]>=l&&b[i]<=r)
flag++;
printf("Case #%d: %d\n",n,flag);
n++;
}
return 0;
}