区间素数筛模板
2016-10-10 16:52
246 查看
//前提:素数打表到sqrt(b)大小接口: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] * prime[i] <= b ; i++) { int j = 0; if(a % prime[i] != 0)//判断a + j 如果(a + j)% prime[i] != 0,找到离a最近且比a大的位置 j = j + prime[i] - a % prime[i]; if(a + j == prime[i])//如果a + j是素数,则找下一个 j += prime[i]; for(; j <= l ; j += prime[i]) f[j] = 1;//从j开始将含prime[i]因子的数标记(即筛除) } for(int i = 0 ; i <= l ; i++) if(!f[i]) num++; if(a == 1)//如果a从1开始,需要减去一个 num--; return num; }
相关文章推荐
- 【模板】快速区间素数计数
- poj2689(素数区间筛法模板)
- LightOJ1197 - Help Hanzo(区间素数筛 + 模板)
- 素数表的快速建立,合数分解,1-2^31内某个长度小于10w的区间素数筛选的三个模板及解析
- [模板][洛谷P1835]素数密度(区间筛)
- Prime Distance poj 2689 区间内的素数打表模板
- 对于新手而言 写个在某个区间寻找素数
- P3383 【模板】线性筛素数 洛谷
- 线段树模板合集--单点替换,区间替换,区间增加3种情况
- LightOJ - 1422 Halloween Costumes(区间DP模板)
- BZOJ 2818: Gcd区间内最大公约数 为素数的对数(欧拉函数的应用)
- 113C - Double Happiness 求区间%4=1的素数--可以表示成平方和的形式--的个数(素数筛选法)
- POJ2689:Prime Distance(大数区间素数筛)
- Kotlin学习(二)—— 基本语法,函数,变量,字符串模板,条件表达式,null,类型检测,for,while,when,区间,集合
- 求n很大时求,<= n的素数的个数(时间复杂度o(n ^ 2 / 3)模板
- HDU 5901 Count primes (求1e11内素数个数、模板题....)
- 筛选素数模板
- Multiplication Puzzle(区间DP:类似矩阵连乘问题的DP模板)
- POJ2689:Prime Distance(大区间素数)
- 算法模板——线段树5(区间开根+区间求和)