【数论】(贾志鹏)线性欧拉筛模板&&CODE[VS] 1453 统计素数个数2
2016-11-10 11:54
621 查看
点击进入异世界
详情请百度“贾志鹏线性筛”
每次只用最小的素数筛去,时间复杂度为线性的O(n)比埃筛快
但空间复杂度比埃筛大些
THE END
By Peacefuldoge
http://blog.csdn.net/loi_peacefuldog
详情请百度“贾志鹏线性筛”
每次只用最小的素数筛去,时间复杂度为线性的O(n)比埃筛快
但空间复杂度比埃筛大些
#include <cstdio> #include <cstring> #include <cmath> #include <algorithm> #include <iostream> #define maxn 13333333 using namespace std; typedef long long LL; LL l,r; LL n; LL prime[maxn]; LL used[maxn]; inline LL read() { char ch; LL data = 0; LL f = 1; while(ch <'0'|| ch >'9') { if(ch == '-') { f = -1; } ch = getchar(); } do{ data = data*10+ch-'0'; ch = getchar(); }while(ch >='0'&&ch <='9'); return data * f; } LL cnt = 0; inline void isprime(LL x) { memset(used,0,sizeof(used)); for(LL i = 2;i <= x;i++) { if(used[i] == 0) prime[++cnt] = i; for(LL j = 1;j <= cnt && i*prime[j] <= x;j++) { used[i * prime[j]] = 1; //cout<<used[i * prime[j]]<<endl; if(i%prime[j] == 0) break; } } } LL ans = 0; int main() { l = read(); r = read(); isprime(r); for(LL i = 0;i <= cnt;i++) if(prime[i] >= l&&prime[i] <= r) ans++; printf("%lld\n",ans); return 0; }
THE END
By Peacefuldoge
http://blog.csdn.net/loi_peacefuldog
相关文章推荐
- 【codevs1453 统计素数个数2】E氏筛法
- 【数论】埃氏筛法&&CODE[VS] 3223 素数密度 = =
- BZOJ_1588_&_Codevs_1296_[HNOI2002]_营业额统计(平衡树/set)
- Splay模板 codevs1296&&codevs1286好郁闷
- 【数论】快速幂&&CODE[VS] 3500
- Miller-Rabin随机性素数测试方法 & [CodeVS 1702] 素数判定2
- BZOJ_P2190&&Codevs_P2296 [SDOI2008]仪仗队(欧拉函数线性筛)
- 【数论】矩阵快速幂&&CODE[VS] 1732
- 数论——【模板】线性筛素数
- 【数论】矩阵乘法&&CODE[VS] 1287
- [数论] [codevs 1702 素数判定2] 费马定理+验证法
- BZOJ_P2729[HNOI2012]排队&Codevs_P1994 排队(数论)
- 洛谷 P1463 [SDOI2005]反素数ant && codevs2912反素数
- 模板整理:数论---线性筛素数,线性筛欧拉函数
- 线性筛选素数模板
- 素数筛总结篇___Eratosthenes筛法和欧拉筛法(*【模板】使用 )
- 模板:(数论:大素数判定-分解: Miller-Rabin算法)
- codevs1040 统计单词个数
- bzoj1036 codevs2460: [ZJOI2008]树的统计 树链剖分
- poj3006 筛选法求素数模板(数论)