#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int MAX = 1e5+10;
const int MAX_INTERVAL = 2e5+100;
bool is_prime[MAX_INTERVAL];
bool is_prime_small[MAX];
int segment_sieve(ll a,ll b){
for(int i = 0; (ll)i * i <= b; i++) is_prime_small[i] = true;
for(int i = 0; i <= b - a; i++) is_prime[i] = true;
for(int i = 2; (ll)i * i <= b; i++){
if(is_prime_small[i]){
for(int j = 2 * j; (ll)j * j <= b; j += i)
s_prime_small[j] = false;
for(ll j = max(2LL,(a+i-1)/i)*i; j <= b; j += i)
is_prime[j-a] = false;
//找到a-b范围内第一个i到倍数将其划去,记录到时候仍然记录离散化后的数组位置
}
}
int ans = 0;
for(int i = 0; i <= b-a; i++){
if(is_prime[i]) ans++;
}
return ans;
}
int main(){
int T,cas = 0;
scanf("%d",&T);
while(T--){
ll a,b;
scanf("%lld%lld",&a,&b);
int ans = segment_sieve(a,b);
if(a == 1) ans--;
printf("Case %d: %d\n",++cas,ans);
}
return 0;
}
相关推荐
Windows平台高效BLE调试工具开发指南
本文为开发者提供了一份在Windows平台上开发高效BLE调试工具的详细指南。文章深入探讨了使用32feet.NET库进行蓝牙低功耗设备扫描、连接、数据通信及进阶功能开发的实战经验,旨在帮助开发者打造功能自定义、性能优化的专属调试利器,显著提升物联网和嵌入式设备的调试效率。
[模板] 区间筛素数
原理:一个数的倍数肯定不是素数 若给定子区间[fst, lst] 则必有区间内任意数最大的因子是sqrt(lst); 因此只需要将2 - sqrt(lst)中的所有质数的倍数从区间[fst, lst]中划掉即可 剩下的就是区间内的素数 注意两个情况 1. 第一次筛出的素数就在区间里 要特判 2. 将区间[fst, lst]映射入[0, lst - fst] 3.bitset优...
面积二次矩second moment of area 极惯性矩polar moment of area 转动惯量moment of inertia面积一次矩first moment of area
看论文记录一下力学的名词专业术语,后面可以查看。
区间素数筛模板
接口:qujiansushu(左端点,右端点)闭区间,返回区间中素数的个数 bool f[100005]; int qujiansushu(long long a,long long b) { int num = 0; int l = b - a;//将a到b转化为从0到b - a for(int i = 0 ; i < primeCount && prime[i
Win10下ISE14.7 iMPACT闪退?三步搞定DLL替换(附详细路径)
本文详细介绍了在Windows 10系统下解决Xilinx ISE14.7 iMPACT工具闪退问题的三步DLL替换方案。通过替换关键DLL文件,有效解决了FPGA开发中的兼容性问题,帮助开发者快速恢复工作流程。
PrimeTime生成.lib竟暗藏PG添加Bug
1. 确认原始库中是否包含PG引脚的定义。2. 查阅PrimeTime的write_lib命令文档,寻找相关选项。3. 在生成库时使用正确的选项,例如-include_pg_pins或类似参数。4. 验证生成的.lib文件是否包含pg_pin部分。
区间素数筛法
题目描述 筛法是一种简单检定素数的算法。据说是古希腊的埃拉托斯特尼(Eratosthenes,约公元前274~194年)发明的,又称埃拉托斯特尼筛法(sieve of Eratosthenes)。 以上是百度百科的定义。不得不佩服古希腊人的智慧。今天希望你在古人智慧的基础上解决问题:给定正整数a和b,请问区间[a,b)内有多少个素数。 输入 有多组样例,每组样例有2个正整数a,b(a&...
解决QT5调用软键盘qvirtualkeyboard时崩溃问题ime_pinyin::MatrixSearch::init_user_dictionary
但是偶尔也会出现问题,譬如,我这边在Arm系统上跑着程序的时候,点击用户编辑框,输入法弹出,但是再次点击密码输入框,连程序都给我崩溃了。只是提示错误:void ime_pinyin::MatrixSearch::init_user_dictionary。首先确保你的Arm版QT库已经编译了软键盘,位置有时候就和lib同级目录,qtvirtualkeyboard。QT5中的软键盘qvirtualkeyboard很好用,很多人开发嵌入式端应用的时候都会用到。此外还有很多其他的输入法字典,像。
筛选区间素数模板(poj2689)
#define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <cstdio> #include <algorithm> #include <cstring> using namespace std; const int maxn = 100000 + 10; int prim...
Android AVB 分析(十三)dm-verity 设备是如何映射的?
在上一篇《Android AVB 分析(十二)嵌入式设备安全中的 dm-verity 简介》介绍 dm-verity 原理的时候,作者提供了一个 dm-verity 演示的例子。本篇我们基于 AOSP 源码 `android-13.0.0_r41` 实际编译生成的 Google Pixel 7 (“panther”) 设备的 system 分区镜像进行 dm-verity 设备验证实战。
BAQ压缩原理
BAQ——Block Adaptive Quantization,块自适应量化,一种数据压缩算法。
POJ - 2689 区间筛素数(模板)
题目链接 题意 给定区间[l, r],长度小于1e6,l和r小于1e9,问这个区间中相邻两个素数差值的最大值和最小值。如果只有一个素数或者没有素数则输出There are no adjacent primes. 思路 模板题 因为每个合数x都有一个小于x\sqrt{x}x的因子,所以只要筛出[2,r][2, \sqrt{r}][2,r]之间的素数,然后枚举素数p,把这个区间中p的倍数全部筛掉即...
【YOLOv8改进-注意力机制】LSKNet(Large Selective Kernel Network ):空间选择注意力
【YOLOv8改进-注意力机制】LSKNet(Large Selective Kernel Network ):空间选择注意力 (论文笔记+引入代码)。LSKNet能够动态调整其大的空间接收场,以更好地模拟遥感场景中各种对象的范围上下文。据我们所知,这是首次在遥感目标检测领域探索大型和选择性核机制。
poj2689(素数区间筛法模板)
题目链接: http://poj.org/problem?id=2689 题意: 给出一个区间 [l, r] 求其中相邻的距离最近和最远的素数对 . 其中 1 <= l < r <= 2,147,483,647, r - l <= 1e6 . 思路: 素数区间筛 要找到 [l, r] 中相邻最近和最远的素数对肯定是需要找出 [l, r] 内所有素数 . ...
OV9734 DATASHEET,完整规格书
OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等
汉书HE8,好用的汇编代码编写工具
汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大
[模板][洛谷P1835]素数密度(区间筛)
题目←每个数n的最小质因子一定不超过n√\sqrt{n} 预处理出m−−√\sqrt{m}内的素数表,删去每个素数在n-m区间内所有倍数,剩下的一定全为素数 del数组采用下标偏移,i实际表示数n+i是否已被删去 del数组大小为0~m-n#include<iostream> #include<cstdio> #include<algorithm> #include<cmath> #defin
RU DOS版、EFI版32bit/64bit BIOS常用工具
DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。
POJ - 2689 Prime Distance(素数区间筛模板)
题目链接:点击查看 题目大意:给出一段闭区间[l,r],求区间内相邻距离最大的素数对和相邻距离最小的素数对,题目保证r-l<=1e6,1<=l<=r<= 题目分析:因为我们要求区间[l,r]内的最近和最远素数对,肯定要求出这段区间内的所有素数,l和r最大都能到1e9,并且其区间也到了1e6,暴力打表然后暴力遍历肯定是不行的,我们可以换一个思路,先在sqrt(1e9)的范...
LinePhone3.2.7(android端最新版本) sip客户端
SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/
Help Hanzo LightOJ - 1197(区间筛素数模板题)
Help Hanzo LightOJ - 1197 Amakusa, the evil spiritual leader has captured the beautiful princess Nakururu. The reason behind this is he had a little problem with Hanzo Hattori, the best ninja and the...
素数筛
新手常用的素数筛总结及模板套用 在新手的比赛中,我们经常遇到关于素数的问题,而对于筛选他们的方式和每种筛法的承载量便值得探讨,作为菜鸡的我便举了以下几种筛法和可以直接套用的模板(1,我把筛法都整理成了自定义函数,便于大家直接套用;2,为避免数组爆炸,我将其设定为了全局变量)。 一 暴力筛 [优]暴力筛是最普通的筛,其无脑的循环筛选最让人容易上手。 [劣]经过测验,它的范围大约只有1~1e6,不能满足许多题目的要求;而且,较慢的筛选速度也很容易TLE。 #include<bits/stdc++.h&g
蒟蒻复习之—–数学
//以下是我的一些模板的整理 //只有板子,没有原理素数1.素数判定O(根号n)bool prime(int x) { if(x == 0 || x == 1) return false; for(int i = 2; i * i <= x; i++) { if(x % i == 0) return false; } return true; }2.
筛表合集(素数筛 欧拉函数筛 莫比乌斯函数筛)
【目录】 一、素数筛 1.素数判断 2.素数普通筛 3.素数线性筛 4.素数区间筛 二、欧拉函数筛 三、莫比乌斯函数筛 【素数筛】 1.直接判定质数 bool judgePrime( int num ) { if(num < 2 ) return 0; int tmp =sqrt( num ); for(int i= ...
区间筛法找素数
区间筛法用于快速筛出a到b区间的全部素数,b-a
区间素数筛选 poj2689
0.0
素数筛模板
快速幂模板 代码如下: #include <iostream> #include <cstring> using namespace std; #define N 10000 bool a[N]; int b[N], n; void prime () { n = 0; memset(a, 0, sizeof(a)); for(int i = 2; i <...
素数筛选及区间素数
埃氏筛法 算法复杂度O( n*log(log n) ) 原理:从2开始,每第一次出现且之前没有它的因数出现就一定是素数,然后再把它的所有倍数设为true bool isprime[maxn]; //maxn即需要求多少范围里的素数,maxn最大为2e^7 int prime[N]; //根据maxn的大小调节,该数组储存了maxn范围内的所有素数 int num; void Prime(){ ...
找素数
Description 给定区间[L, R] , 请计算区间中素数的个数。 Input 两个数L和R。 Output 一行,区间中素数的个数。 Sample Input 1 2 11 Sample Output 1 5 Hint HINT:时间限制:1.0s 内存限制:256.0MB 2 <= L <= R <= 2147483647 R-L <= 1000000 思路: 使用埃式筛法,筛出 [2,sqrt(R)] 中的素数,(因为一个
256



被折叠的 条评论
为什么被折叠?



