5458. 【NOIP2017提高A组冲刺11.7】质数 
(File IO): input:prime.in output:prime.out

Time Limits: 1000 ms  Memory Limits: 524288 KB  Detailed Limits  

Goto ProblemSet

Description

小X 是一位热爱数学的男孩子,在茫茫的数字中,他对质数更有一种独特的情感。小X 认为,质数是一切自然数起源的地方。
在小X 的认知里,质数是除了本身和1 以外,没有其他因数的数字。
但由于小X 对质数的热爱超乎寻常,所以小X 同样喜欢那些虽然不是质数,但却是由两个质数相乘得来的数。
于是,我们定义,一个数是小X 喜欢的数,当且仅当其是一个质数,或是两个质数的乘积。
而现在,小X 想要知道,在L 到R 之间,有多少数是他喜欢的数呢?
 

Input

第一行输入一个正整数Q,表示询问的组数。
接下来Q 行。包含两个正整数L 和R。保证L≤R。

Output

输出Q 行,每行一个整数,表示小X 喜欢的数的个数。
 

Sample Input

输入1:
1
1 6 输入2:
10
282 491
31 178
645 856
227 367
267 487
474 697
219 468
582 792
315 612
249 307 输入3:
10
20513 96703
15236 86198
23185 78205
40687 48854
42390 95450
63915 76000
36793 92543
35347 53901
44188 76922
82177 90900

Sample Output

输出1:
5
样例1解释:
6以内的质数有2,3,5,而4=2*2,6=2*3。因此2,3,4,5,6都是小X 喜欢的数,而1 不是。 输出2:
97
78
92
65
102
98
114
90
133
29 输出3:
24413
23001
17784
2669
16785
3833
17712
6028
10442
2734
 
做法:当我们使用线性筛的时候,会发现和本题奇妙的契合,emmm,然后跑前缀和直接输出答案。
#include <cstdio>
#include <cstring>
#include <iostream>
#define N 10000020
using namespace std;
int q, zs[N / ], qzh[N], n;
bool b[N], v[N]; void Pre_work()
{
memset(qzh, , sizeof(qzh));
for (int i = ; i <= N - ; i++)
{
if (!b[i])
{
zs[++zs[]] = i;
v[i] = ;
for (int j = ; j <= zs[]; j++)
if (i * zs[j] > N - ) break;
else v[i * zs[j]] = , b[i * zs[j]] = ;
}
else
{
for (int j = ; j <= zs[]; j++)
if (i * zs[j] > N - ) break;
else b[i * zs[j]] = ;
}
} for (int i = ; i <= N - ; i++)
qzh[i] += qzh[i - ] + v[i];
} int main()
{
freopen("prime.in", "r", stdin);
freopen("prime.out", "w", stdout);
Pre_work();
scanf("%d", &n);
int x, y;
for (; n; n--)
{
scanf("%d%d", &x, &y);
printf("%d\n", qzh[y] - qzh[x - ]);
}
}

5458. 【NOIP2017提高A组冲刺11.7】质数的更多相关文章

  1. JZOJ 5462. 【NOIP2017提高A组冲刺11.8】好文章

    5462. [NOIP2017提高A组冲刺11.8]好文章 (File IO): input:article.in output:article.out Time Limits: 1000 ms  M ...

  2. JZOJ 5456. 【NOIP2017提高A组冲刺11.6】奇怪的队列

    5456. [NOIP2017提高A组冲刺11.6]奇怪的队列 (File IO): input:queue.in output:queue.out Time Limits: 1000 ms  Mem ...

  3. JZOJ 5459. 【NOIP2017提高A组冲刺11.7】密室

    5459. [NOIP2017提高A组冲刺11.7]密室 (File IO): input:room.in output:room.out Time Limits: 1000 ms  Memory L ...

  4. JZOJ 5455. 【NOIP2017提高A组冲刺11.6】拆网线

    455. [NOIP2017提高A组冲刺11.6]拆网线 (File IO): input:tree.in output:tree.out Time Limits: 1000 ms  Memory L ...

  5. JZOJ 5461. 【NOIP2017提高A组冲刺11.8】购物

    5461. [NOIP2017提高A组冲刺11.8]购物 (File IO): input:shopping.in output:shopping.out Time Limits: 1000 ms   ...

  6. [JZOJ5455]【NOIP2017提高A组冲刺11.6】拆网线

    Description 企鹅国的网吧们之间由网线互相连接,形成一棵树的结构.现在由于冬天到了,供暖部门缺少燃料,于是他们决定去拆一些网线来做燃料.但是现在有K只企鹅要上网和别人联机游戏,所以他们需要把 ...

  7. 【NOIP2017提高A组冲刺11.8】好文章

    #include<algorithm> #include<iostream> #include<cstring> #include<cstdio> us ...

  8. 【NOIP2017提高A组冲刺11.6】拆网线

    和syq大兄弟吐槽题目不小心yy出了正解.. 最优的选法就是选两个两个相互独立的,欸这不就是最大匹配吗?那多的企鹅就新加一条边呗?不够的就除以2上取整呗? 欸?AC了? 树也是一个二分图,最大匹配=最 ...

  9. 【NOIP2017提高A组冲刺11.8】购物

    这个范围对DP不友好,和CF的一道C题非常像,贪心+后悔. 先使用k个优惠券购买k个q最小的(钱不购买则退出),同时把这k个p[i]-q[i]放入小根堆,然后将剩下的n-k个按p升序排序,记小根堆堆顶 ...

随机推荐

  1. POJ 2253 ——Frogger——————【最短路、Dijkstra、最长边最小化】

    Frogger Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Submit Stat ...

  2. 《大话设计模式》num01---简单工厂模式

    2017年12月10日 20:13:57 独行侠的守望 阅读数:128更多个人分类: 设计模式编辑版权声明:本文为博主原创文章,转载请注明文章链接. https://blog.csdn.net/xia ...

  3. bootstrap Table的 一些小操作

    function HQCreatTable(ob) { var option = { cache: false,//是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*) scroll ...

  4. codevs 原创抄袭题 5969 [AK]刻录光盘

    题目描述 Description • 在FJOI2010夏令营快要结束的时候,很多营员提出来要把整个夏令营期间的资料刻录成一张光盘给大家,以便大家回去后继续学习.组委会觉得这个主意不错!可是组委会一时 ...

  5. Today is the first day of the rest of your life.

    Today is the first day of the rest of your life. 今天是你余下人生的第一天.

  6. 适用于 Internet Explorer 11 的企业模式

    https://technet.microsoft.com/zh-cn/itpro/internet-explorer/ie11-deploy-guide/enterprise-mode-overvi ...

  7. 菜鸟 学注册机编写之 “MD5”

    测试环境  系统: xp sp3 调试器 :od 1.10 sc_office_2003_pro 高手不要见笑,仅供小菜玩乐,有不对或不足的地方还请多多指教,不胜感激! 一:定位关键CALL 1. 因 ...

  8. linux下mysql多实例安装(转)

    转自:http://www.cnblogs.com/xuchenliang/p/6843990.html   1.MySQL多实例介绍 1.1.什么是MySQL多实例 MySQL多实例就是在一台机器上 ...

  9. ADO数据库编程详解(C++)----初级入门篇

    一.概述 ADO即Microsoft ActiveXData Object,是Microsoft继ODBC之后,基于OLE DB技术的一种数据库操作技术,使您能够编写通过 OLE DB提供者对在数据库 ...

  10. spring中用xml配置构造注入的心得

    spring中用xml配置构造注入时,如果 <constructor-arg> 属性都是 ref ,则不用理会参数顺序 <constructor-arg ref="kill ...