hdu 4548 美素数(筛选法求素数)

来源:互联网 发布:protty网络验证 编辑:程序博客网 时间:2024/05/16 01:01
#include<stdio.h>#include<iostream>using namespace std;int num[1000010]={0},sum[1000010]={0};void prime(){int i,j;num[0]=num[1]=1;for(i=2;i<=1000;i++){if(!num[i]){for(j=i*i;j<=1000000;j+=i)num[j]=1;}}} void SUM(){int i,j,k;for(i=1;i<=1000000;i++){if(!num[i]){j=i,k=0;while(j){k+=j%10;j/=10;}if(!num[k]) sum[i]=sum[i-1]+1;else sum[i]=sum[i-1];}else sum[i]=sum[i-1];//加快运算}}int main(){int n,m,i,j,t,s,k,v;prime();SUM();scanf("%d",&t);v=0;while(t--){scanf("%d%d",&n,&m);if(n>m){int temp=n;n=m;m=temp;}printf("Case #%d: %d\n",++v,sum[m]-sum[n-1]);}return 0;}

0 0
原创粉丝点击