常州模拟赛d2t1 小X的质数
题目背景
小 X 是一位热爱数学的男孩子,在茫茫的数字中,他对质数更有一种独特的
情感。小 X 认为,质数是一切自然数起源的地方。
题目描述
在小 X 的认知里,质数是除了本身和 1 以外,没有其他因数的数字。
但由于小 X 对质数的热爱超乎寻常,所以小 X 同样喜欢那些虽然不是质数,
但却是由两个质数相乘得来的数。
于是,我们定义,一个数是小 X 喜欢的数,当且仅当其是一个质数,或是两
个质数的乘积。
而现在,小 X 想要知道,在 L 到 R 之间,有多少数是他喜欢的数呢?
输入输出格式
输入格式:
从文件 prime.in 中读取数据。
第一行输入一个正整数 Q,表示询问的组数。
接下来 Q 行,包含两个正整数 L 和 R,保证 L≤R。
输出格式:
输出 Q 行,每行一个整数,表示小 X 喜欢的数的个数。
输入输出样例
1 6
5
【样例 1 解释】
6 以内的质数有 2、3、5,而 4 = 2 * 2,6 = 2 * 3,因此,2,3,4,5,6 都是小 X 喜欢的数,而 1 不是.
L,R <= 10^7 Q <= 10^5
分析:这道题会线性筛就可以解决了.因为线性筛就是筛出素数并且剔除掉素数与另一个数i的乘积的,对于两个素数的乘积,我们只需要判断一下i是不是素数就好了
不过因为询问较多,所以要用前缀和处理.
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
int q, l, r;
long long flag[], prime[], tot = , ans, vis[], vis2[], maxn;
long long sum[];
struct node
{
int l, r;
}e[]; void init(int r)
{
for (int i = ; i <= r; i++)
{
if (!flag[i])
{
prime[++tot] = i;
vis[i] = ;
}
for (int j = ; j <= tot; j++)
{
int t = i * prime[j];
if (t > r)
break;
flag[t] = ;
if (vis[i])
vis2[t] = ;
if (i % prime[j] == )
break;
}
}
} int main()
{
scanf("%d", &q);
for (int i = ; i <= q; i++)
{
scanf("%d%d", &e[i].l, &e[i].r);
if (e[i].r > maxn)
maxn = e[i].r;
}
init(maxn);
for (int i = ; i <= maxn; i++)
{
if (vis[i])
sum[i] = sum[i - ] + vis[i];
else
sum[i] = sum[i - ] + vis2[i];
}
for (int i = ; i <= q; i++)
printf("%lld\n", sum[e[i].r] - sum[e[i].l - ]); return ;
}
常州模拟赛d2t1 小X的质数的更多相关文章
- 常州模拟赛d2t3 小X的佛光
平日里最喜欢做的事就是蒸发学水.[题目描述]小 X 所在的城市 X 城是一个含有 N 个节点的无向图,同时,由于 X 国是一个发展中国家,为了节约城市建设的经费,X 国首相在建造 X 城时只建造 N ...
- 常州模拟赛d2t2 小X的密室
题目描述 密室中有 N 个房间,初始时,小 X 在 1 号房间,而出口在 N 号房间. 密室的每一个房间中可能有着一些钥匙和一些传送门,一个传送门会 单向地 创造一条从房间 X 到房间 Y 的通道.另 ...
- 2014.7.7 模拟赛【小K的农场】
3.小K的农场(farm.pas/cpp/c) [题目描述] 小K在MC里面建立很多很多的农场,总共n个,以至于他自己都忘记了每个农场中种植作物的具体数量了,他只记得一些含糊的信息(共m个),以下列三 ...
- 【20170920校内模拟赛】小Z爱学习
所有题目开启-O2优化,开大栈空间,评测机效率为4亿左右. T1 小 Z 学数学(math) Description 要说小 Z 最不擅长的学科,那一定就是数学了.这不,他最近正在学习加法运算.老 ...
- 常州模拟赛d4t3 字符串划分
题目描述 给你一串由小写字母组成的字符串,希望你把它划分成一些小段,使得每一小段字符串中的字母 都不相同,并且希望分的段数尽量少. 然后,把这些小段按字典序排序后输出,中间由一个空格分隔. 例如:字符 ...
- 常州模拟赛d4t1 立方体
题目描述 立方体有 6 个面,每个面上有一只奶牛,每只奶牛都有一些干草.为了训练奶牛的合作精神,它 们在玩一个游戏,每轮:所有奶牛将自己的干草分成 4 等份,分给相邻的 4 个面上的奶牛. 游戏开始, ...
- 常州模拟赛d3t3 两只怪物心心相印
题目背景 从前我是一位无名的旅人,旅途中我得到了某样东西:贤者之石.我因此得到悠久的时光和漂泊的生命.1897年冬天,我一时兴起舍弃了旅人的生活. 贤者之石创造出来的,是货真价实的黄金.我的名声传遍了 ...
- 常州模拟赛d3t1 神在夏至祭降下了神谕
题目描述 我们村子在过去的400年中,断绝与下界的接触,过着自给自足的生活. 夏至祭是一场迎接祖灵于夏季归来,同时祈求丰收的庆典. 村里的男人会在广场上演出夏之军和冬之军的战争.夏之军会打倒冬之军的大 ...
- 常州模拟赛d7t2 数组
题目背景 HJZ 有很多玩具.他最喜欢玩的玩具是一个可以变化的数组. 题目描述 HJZ 的数组初始时有 n 个元素.他可以把一个位置上的数加上或减去一个固定的 数 x. 一天 LJZ 和 HZY 来 ...
随机推荐
- codevs 1146 ISBN号码
时间限制: 1 s 空间限制: 128000 KB 题目等级 : 白银 Silver 题目描述 Description 每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字.1 ...
- 如何计算CDS view里两个时间戳之间的天数间隔
ABAP透明表里的时间戳,数据类型为dec: 有个需求:计算这两个时间戳之间的天数间隔,丢弃时间戳年-月-日8位后面的小时:分钟:秒. 举个例子:如果时间戳是20180918173132,丢弃1731 ...
- 如何在ABAP里用函数式编程思想打印出非波拉契Fibonacci(数列)
在JavaScript里可以用ES6提供的FunctionGenerator这种黑科技来打印非波拉契数列,具体细节参考我这篇文章. 在ABAP里也有很多种方式实现这个需求. 下面这个report分别用 ...
- 微信程序开发系列教程(三)使用微信API给微信用户发文本消息
这个系列的第二篇教程,介绍的实际是被动方式给微信用户发文本消息,即微信用户关注您的公众号时,微信平台将这个关注事件通过一个HTTP post发送到您的微信消息服务器上.您对这个post请求做了应答(格 ...
- UVA 1349 Optimal Bus Route Design (二分图最小权完美匹配)
恰好属于一个圈,那等价与每个点有唯一的前驱和后继,这让人想到了二分图, 把一个点拆开,点的前驱作为S集和点的后继作为T集,然后连边,跑二分图最小权完美匹配. 写的费用流..最大权完美匹配KM算法没看懂 ...
- 转载:收费版APP三年总结(个人经验+数据图分享)
各位朋友好,apop感觉这里的朋友有许多是以广告收入为主,所以apop来分享另外一块(收费版APP)的个人三年来的总结分享,希望对各位有帮助.首 先,其实在AppStore(或GooglePlay)上 ...
- bzoj 2658
首先考虑容斥 我们计算出所有没有点在其中的矩形,然后用所有矩形减去这些矩形即可 然后考虑如何计算没有点在其中的矩形 采用扫描线的思想,从上向下一行一行扫,假设我们扫到的行编号是$a$,然后考虑如果左右 ...
- 树形dp——Tree2cycle
一.问题描述(题目链接) 给你一棵树,删除或添加一条边的费用都是1,问使它变成一个环的最小费用. 二.解题思路 回溯法,然后回溯的时候的当前节点度数>2(如果是成环的话肯定就是2或者小于2)就把 ...
- jQuery中ready方法的实现
https://blog.csdn.net/major_zhang/article/details/80146674 先普及一下jquery.ready()和window.onload,window. ...
- jQuery绑定动态元素的点击事件无效
之前就一直受这个问题的困扰,在写ajax加载数据的时候发现,后面追加进来的demo节点元素,失去了之前的点击事件.为什么点击事件失效,我们该怎么去解决呢?那么,我们通过下面的示例简单说明. 示例如下: ...