美素数【杭电-4548】 附题

/*

美素数

Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)

Total Submission(s): 2419    Accepted Submission(s): 829

Problem Description

  小明对数的研究比较热爱,一谈到数,脑子里就涌现出好多数的问题,今天,小明想考考你对素数的认识。

  问题是这样的:一个十进制数,如果是素数,而且它的各位数字和也是素数,则称之为“美素数”,如29,本身是素数,而且2+9 = 11也是素数,所以它是美素数。

  给定一个区间,你能计算出这个区间内有多少个美素数吗?

Input

第一行输入一个正整数T,表示总共有T组数据(T <= 10000)。

接下来共T行,每行输入两个整数L,R(1<= L <= R <= 1000000),表示区间的左值和右值。

Output

对于每组数据,先输出Case数,然后输出区间内美素数的个数(包括端点值L,R)。

每组数据占一行,具体输出格式参见样例。

Sample Input

3

1 100

2 2

3 19

Sample Output

Case #1: 14

Case #2: 1

Case #3: 4

*/

#include<stdio.h>

#define N 1000100

int a[N]={1,1,0};

int b[N]={0};

void f()

{

int i,j;

for(i=2;i*i<=N;i++)

if(!a[i])

for(j=i*2;j<=N;j+=i)

a[j]=1;

}

int sum(int a)

{

int y=0;

while(a)

{

y+=(a%10);

a/=10;

}

return y;

}

int main()

{

int n,x,y,i,k,j;

f();

scanf("%d",&n);

for(i=1;i<=N;i++){

if(!a[i]&&!a[sum(i)])

b[i]=b[i-1]+1;

else b[i]=b[i-1];

}

for(j=1;j<=n;j++)

{

scanf("%d %d",&x,&y);

printf("Case #%d: %d\n",j,b[y]-b[x-1]);

}

return 0;

}

美素数【杭电-4548】 附题

时间: 2024-11-05 20:30:24

美素数【杭电-4548】 附题的相关文章

美素数(杭电4548)

/*美素数 Problem Description 小明对数的研究比较热爱,一谈到数,脑子里就涌现出好多数的问题,今天,小明想考考你对素数的认识. 问题是这样的:一个十进制数,如果是素数,而且它的各位数字和也是素数,则称之为"美素数",如29,本身是素数,而且2+9 = 11也是素数,所以它是美素数. 给定一个区间,你能计算出这个区间内有多少个美素数吗? Input 第一行输入一个正整数T,表示总共有T组数据(T <= 10000). 接下来共T行,每行输入两个整数L,R(1&l

杭电acm 1034题

Problem Description A number of students sit in a circle facing their teacher in the center. Each student initially has an even number of pieces of candy. When the teacher blows a whistle, each student simultaneously gives half of his or her candy to

杭电acm 1049题

一道水题..... 大意是一条1inch的虫子在一个n inch的盒子的底部,有足够的能够每一分钟往上爬u inch,但是需要休息一分钟,这期间会往下掉d inch,虫子爬到盒子口即认为结束.要求计算出给定的n,u,d虫子爬上的时间. 1 /****************************************************** 2 杭电acm 1049题 已AC 3 *****************************************************/

杭电acm 1076题

水题,一个求闰年的题目,复习一下闰年的求法.... 1,如果能被4整除但不能被100整除的是闰年 2,能被400整除的是闰年 题目大意是:给定一个开始年份T以及一个正数N,要求求出从T开始,到了哪一年刚好是第N个闰年,如果开始年份是闰年则记为第一个闰年.... 1 /*********************************** 2 杭电acm 1076题 已AC 3 *************************************/ 4 #include <iostream>

杭电acm 2013题

蟠桃记 喜欢西游记的同学肯定都知道悟空偷吃蟠桃的故事,你们一定都觉得这猴子太闹腾了,其实你们是有所不知:悟空是在研究一个数学问题! 什么问题?他研究的问题是蟠桃一共有多少个! 不过,到最后,他还是没能解决这个难题,呵呵^-^ 当时的情况是这样的: 第一天悟空吃掉桃子总数一半多一个,第二天又将剩下的桃子吃掉一半多一个,以后每天吃掉前一天剩下的一半多一个,到第n天准备吃的时候只剩下一个桃子.聪明的你,请帮悟空算一下,他第一天开始吃的时候桃子一共有多少个呢? 这道题目几个月以前用循环做过,最近想重温下

hdu1867(A + B for you again) 杭电java a题真坑

点击打开链接 Problem Description Generally speaking, there are a lot of problems about strings processing. Now you encounter another such problem. If you get two strings, such as "asdf" and "sdfg", the result of the addition between them is

杭电acm 2018题

有一头母牛,它每年年初生一头小母牛.每头小母牛从第四个年头开始,每年年初也生一头小母牛.请编程实现在第n年的时候,共有多少头母牛? 因为前三年的小母牛到了第四年会生小牛,再加上前一年的母牛头数就是某年母牛的总数. f(1)=1; f(2)=2; f(3)=3; ......... f(n)=f(n-1)+f(n-3); #include<stdio.h> int f(int n); int main(void) { int n; while(scanf("%d",&

杭电 1262 寻找素数对 【素数】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1262 解题思路:先将题目中给出的偶数范围内的素数打表,设输入的那个偶数为n,这样找到n/2在素数表的位置k,从pn[k]到pn[2]:以及从pn[k]到pn[10000]依次判断相加是否等于n即可. 反思:注意像 10和26这样的偶数,应该输出的是 5 5:13 13:所以应该单独处理这种n/2等于一个素数的偶数 ps:这是在杭电的100题,这三个多月来,加油!!!!!fighting!!!!!!

进制转换,杭电0j-2031

进制转换,杭电0j-2031原题地址:http://acm.hdu.edu.cn/showproblem.php?pid=2031 [Problem Description] 输入一个十进制数N,将它转换成R进制数输出. [Input] 输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=16, R<>10). [Output] 为每个测试实例输出转换后的数,每个输出占一行.如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,等等).