UVA 10533

来源:互联网 发布:软件管家360官方下载 编辑:程序博客网 时间:2024/06/05 16:33



题意:


题解:




代码:

#include<iostream>#include<string.h>#include<string>int u2[1100001];  //前缀的位素数个数bool u[1100001];  //素数筛法using namespace std;void prepare(){int i,j;memset(u,true,sizeof(u));for(i=2;i<1100001;i++)if(u[i])for(j=2;j*i<=1100001;j++)u[j*i]=false;}bool ok(int x){int k=0;while(x) k+=x%10;x/=10;return u[k];}int main(){int i,j,k;prepare();for(i=2;i<1100001;i++)if(u[i]&&ok(i)) u2[i]=1;for(i=2;i<1100001;i++) u2[i]+=u2[i-1];cin>>k;while(k--){cin>>i>>j;cout<<u2[j]-u2[i-1]<<endl; //区间中 素数的个数}return 0;}