HDU 4548 树状数组

来源:互联网 发布:矩阵分析视频百度网盘 编辑:程序博客网 时间:2024/06/07 03:52

美素数

Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)
Total Submission(s): 4687    Accepted Submission(s): 1616


Problem Description
  小明对数的研究比较热爱,一谈到数,脑子里就涌现出好多数的问题,今天,小明想考考你对素数的认识。
  问题是这样的:一个十进制数,如果是素数,而且它的各位数字和也是素数,则称之为“美素数”,如29,本身是素数,而且2+9 = 11也是素数,所以它是美素数。
  给定一个区间,你能计算出这个区间内有多少个美素数吗?
 

Input
第一行输入一个正整数T,表示总共有T组数据(T <= 10000)。
接下来共T行,每行输入两个整数L,R(1<= L <= R <= 1000000),表示区间的左值和右值。
 

Output
对于每组数据,先输出Case数,然后输出区间内美素数的个数(包括端点值L,R)。
每组数据占一行,具体输出格式参见样例。
 

Sample Input
31 1002 23 19
 

Sample Output
Case #1: 14Case #2: 1Case #3: 4
#include<cstdio>#include<iostream>#include<cmath>#define MAXN 1000000+10using namespace std;bool use[MAXN]={0};int a[MAXN]={0};bool judege(int n){int sum=0;while(n){sum+=n%10;n/=10;}return !use[sum];}int lowbit(int i)   //树状数组最巧妙之处:i&(-i){    return i&(-i);}void update(int i, int val) //更新函数{    while(i <= MAXN)    {        a[i] += val;        i += lowbit(i);    }}int sum(int i)      //求和函数{    int sum = 0;    while(i > 0)    {        sum += a[i];        i -= lowbit(i);    }    return sum;}void init(){//memset( tree, 0, sizeof(tree) );//memset( use, 0, sizeof(use) );use[1] = true;for(int i = 2; i <MAXN; i++ ){if(!use[i]){if(judege(i)){update( i, 1 );}for(int j=i+i; j < MAXN; j += i ){use[j] = true;}}}}int main(){init();int T=0;scanf("%d",&T);//printf("1\n");for(int k=1;k<=T;k++){int l=0,r=0;scanf("%d%d",&l,&r);printf("Case #%d: ",k);printf("%d\n",sum(r)-sum(l-1));}return 0;}
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 第一天来姨妈痛怎么办 痛经痛的很厉害怎么办 工作第一天被辞怎么办 第一天练车紧张怎么办 到新公司第一天怎么办 我妈上班别人欺负怎么办 欺负别人他妈来找了怎么办 家人都欺负我妈怎么办 人老了日不动了怎么办? 日照职业技术学院公租房怎么办留宿 眼镜上沾了胶水怎么办 近视镜片刮花了怎么办 墨镜镜片磨花了怎么办 邻居养狗味道大怎么办 邻居不让养狗了怎么办 养狗地板有味道怎么办 狗狗嘴巴被大狗咬肿了怎么办 花了钱心里难受怎么办 狗在屋里有味道怎么办 养狗家里有异味怎么办 养狗房子有味道怎么办 狗身上有腥臭味怎么办 狗狗不想养了怎么办 药流2天后没出血怎么办 药流当天血多怎么办 怀孕四十天不想要怎么办 人流后出血量大怎么办 药流一直不出血怎么办 药流一直不见红怎么办 药流12天还流血怎么办? 把别人车刮了怎么办 车划掉漆了怎么办啊 倒车时碰了车怎么办 车头掉了一点漆怎么办 新买的车被刮了怎么办 白色车车头漆掉了一小块怎么办 临时牌照丢了1张怎么办 临牌遗失了一张怎么办 临牌只有一张了怎么办 临时牌丢了一个怎么办 药流出血特别多怎么办