另类打表:将从1到n的满足美素数条件的数目赋值给prime[n],这样最后仅仅须要用prime[L]减去prime[R-1]就可以;

美素数

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

Total Submission(s): 2332    Accepted Submission(s): 811

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>
#include<string.h>
#define MAXN 1000005
int pri[MAXN] = {1,1};
int prime[MAXN]; int mei( int n )
{
int i, sum = 0, pre = n;
while(n){
sum += n%10;
n/=10;
}
if( pri[sum] == 0 )
return 1;
else
return 0;
} void f()
{
for( int i = 2, k = 0; i < MAXN; i ++ ){
if( pri[i] == 0 ){
if( mei(i) )
++k;
for( int j = i+i; j < MAXN; j += i )
pri[j] = 1;
}
prime[i] = k;
}
} int main()
{
int l, r, t, ans, v = 1;
scanf("%d", &t );
f();
while( t -- ){
scanf( "%d%d", &l, &r );
printf( "Case #%d: ", v++ );
printf( "%d\n", prime[r]-prime[l-1] );
}
return 0;
}

hdoj 4548 美素数 【打表】的更多相关文章

  1. hdoj 4548 美素数

    美素数 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total Submiss ...

  2. HDU 4548 美素数(打表)

    HDU  4548  美素数(打表)解题报告 题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=88159#problem/H 题目 ...

  3. HDU 4548 美素数 在线打表加数状数组

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4548 解题报告:一开始本想先打个素数表,然后每次输入L 跟R 的时候都进行暴力判断,但这题测试数据太多 ...

  4. HDU 4548(美素数)

    Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u   Description 小明对数的 ...

  5. HDU 4548 美素数 素数题解

    本题就是能够直接打表的,推断能否够打表也须要技巧的: 1 推断最大的数值为1000000.百万下面的数打表都是能够的 2 能够线性预处理好.使用素数筛子法是能够接近线性预处理的. 故此能够打表了. 须 ...

  6. hdu 4548 美素数 超级大水题

    美素数 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Submis ...

  7. 杭电(hdu)ACM 4548 美素数

    美素数 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Submis ...

  8. HDU 4548 美素数

    Description 小明对数的研究比较热爱,一谈到数,脑子里就涌现出好多数的问题,今天,小明想考考你对素数的认识.  问题是这样的:一个十进制数,如果是素数,而且它的各位数字和也是素数,则称之为“ ...

  9. 美素数(HDU 4548)(打表,简化时间复杂度)

    相信大家都喜欢美的东西,让我们一起来看看美素数吧. 问题是这样的:一个十进制数,如果是素数,而且它的各位数字和也是素数,则称之为"美素数",如29,本身是素数,而且2+9 = 11 ...

随机推荐

  1. 【C语言】编写函数实现字符串旋转

    //编写函数实现字符串旋转 #include <stdio.h> #include <assert.h> #include <string.h> void reve ...

  2. UVA10370 Above Average

    Above Average It is said that 90% of frosh expect to be above average in their class. You are to pro ...

  3. 用 C 语言编写一个简单的垃圾回收器

    人们似乎觉得编写垃圾回收机制是非常难的,是一种仅仅有少数智者和Hans Boehm(et al)才干理解的高深魔法.我觉得编写垃圾回收最难的地方就是内存分配,这和阅读K&R所写的malloc例 ...

  4. 51NOD 1686 第K大区间 二分

    第k大区间   定义一个区间的值为其众数出现的次数.现给出n个数,求将所有区间的值排序后,第K大的值为多少. Input   第一行两个数n和k(1<=n<=100000,k<=n* ...

  5. USACO 2.1 Ordered Fractions

    Ordered Fractions Consider the set of all reduced fractions between 0 and 1 inclusive with denominat ...

  6. web前端简单布局

    jquery实现的计算器

  7. POJ 1414 暴搜

    题意比较复杂 (但是很好理解) 大概意思是给你等边三角形(详见题目中的图). 最后一行有n个数,下一次要填的数是c. 里面预先已经填好了数字.(0为未填) 得分的标准是这个分数的连通块周围没有空的地方 ...

  8. struts2学习之基础笔记1

    第6章 Strusts 2框架 1  引出 Web App  àà MVC  àà View 视图(jsp,html,JS) | C(Servlet)Filter,Listneer | M(数据bea ...

  9. JS 限制input框的输入字数,并提示可输入字数

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  10. CorelDRAW升级计划--如何购买

    了解通过全新 CorelDRAW 2017升级计划更新此图形设计软件所有最新功能的实惠方案.助升级计划,您可以在下一主要产品版本推出时便收到该版本,从而始终使您的产品保持最新.升级计划取代为 X6 和 ...