大区间内素数(数论)
来源:互联网 发布:室内设计上海知乎 编辑:程序博客网 时间:2024/05/16 09:21
题意:求[L,R)区间内的质数个数 (2<=L<R<=10^12 , R-L<=10^6)
题解: 运用类似埃式筛法的原理,因为lr太大了连数组都开不下,数组就-l存好了。
还有一个基本原理就是n如果不是质数,在2-√n的范围内肯定有质因子
代码:
#include <cstdio>#include <iostream>#include <cmath>#define LL long longusing namespace std;bool ss[1000005],sc[1000005];LL l,r;void prime(){for (int i=2;i<=sqrt(r);i++) if (!ss[i]) { for (int j=2*i;j<=sqrt(r);j+=i) ss[j]=true; for (LL j=max(2LL,(l+i-1)/i*i);j<r;j+=i)//(a+i-1)/i为[a,b)区间内的第一个数至少为i的多少倍. sc[j-l]=true; }}int main(){scanf("%I64d%I64d",&l,&r);prime();int cnt=0;for (int i=0;i<r-l;i++) if (!sc[i]) cnt++;if (l==0) cnt-=2;if (l==1) cnt--;printf("%d",cnt);}
阅读全文
1 0
- 大区间内素数(数论)
- 求大区间内素数的个数(区间筛法)
- 《挑战程序设计竞赛》 大区间内素数的个数
- 区间内素数
- 大区间素数筛选(POJ 2689)
- 大区间素数筛选(POJ 2689)
- POJ2689:Prime Distance(大区间素数)
- 区间内素数的个数
- 求区间内的素数
- 判断区间内素数个数
- HDU2303(数论)大整数求余+素数筛选
- LightOJ 1197(大数范围筛区间内素数个数)
- 大区间素数筛选 POJ2689
- 素数判断(数论)
- Count prime hoj 区间求素数个数(大范围)
- [ACM] POJ 2689 Prime Distance (大区间素数筛选)
- 大区间统计素数(最大1e11)
- 大素数统计1e11以内 【数论】
- Number Sequence
- 算法题练习系列之(二十六): 旧键盘打字
- hduoj1285确定比赛名次(拓扑排序模板)
- tensorflow点滴(1)
- camel读取配置信息
- 大区间内素数(数论)
- 上周热点回顾(8.7-8.13)
- G
- Boolan STL与泛型编程 第一周笔记
- c++ primer plus阅读笔记8---decltype
- linux使用cifs方式mount(挂载)Windows7共享文件
- 17暑假多校联赛7.11 HDU 6130 Kolakoski
- Chrome出现黑屏现象
- yarn-1