呵呵。。。学会打表了
#include<stdio.h>
#include<string.h>
int a[1000010];
int b[1000010];
int main()
{
int i,j,h,l,k,num,n,m;
int t=0;
memset(a,0,sizeof(a));
for(i=2;i*i<1000010;i++)
{
if(!a[i])
{
for(j=i*i;j<1000010;j+=i)
{
a[j]=1;
}
}
}
for(i=2;i<1000010;i++)
{
if(!a[i])
{
l=0;
h=i;
while(h)
{
l+=h%10;
h/=10;
}
if(!a[l])
t++;
}
b[i]=t;
}
scanf("%d",&num);
for(k=1;k<=num;k++)
{
scanf("%d%d",&n,&m);
printf("Case #%d: %d\n",k,b[m]-b[n-1]);
}
return 0;
}
仿照别人的思路。。。。