hdu 4548 美素数

来源:互联网 发布:不想上学 睡不够 知乎 编辑:程序博客网 时间:2024/05/01 16:36

链接:点击打开链接

题意很明了啦,求区间内美素数的个数。果断素数筛选法。。

#include<iostream>#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;#define MAX 1000010int a[MAX],b[MAX];void fun(){int i,ans,sum,j;a[1]=0;a[2]=1;for(i=3;i<=MAX;i++){if(i%2==0)a[i]=0;elsea[i]=1;}for(i=3;i<=MAX;i+=2){if(a[i]){for(j=i+i;j<=MAX;j+=i) a[j]=0;}}ans=0;for(i=1;i<=MAX;i++){if(a[i]){j=i;sum=0;while(j!=0){sum+=j%10;j/=10;}if(a[sum])ans++;}  b[i]=ans;}} int main(){int t,l,r,i,j,k;fun();scanf("%d",&t);for(k=1;k<=t;k++){scanf("%d %d",&l,&r);if(a[l]){i=0;j=l;while(j!=0){i+=j%10;j/=10;}if(a[i])printf("Case #%d: %d\n",k,b[r]-b[l]+1);elseprintf("Case #%d: %d\n",k,b[r]-b[l]);}elseprintf("Case #%d: %d\n",k,b[r]-b[l]);}return 0;}


原创粉丝点击