二逼 普通 文艺的素数筛选法
来源:互联网 发布:大型网络动作游戏 编辑:程序博客网 时间:2024/05/16 07:40
二逼的素数筛选法
2b的筛选法,不多说。
const int N=1000000;bool pr[N];int p[N],lp;bool isprime(int x){ for(int i=2;i*i<=x;i++) if(x%i==0) return 0; return 1;}void initp(){ for(int i=2;i<N;i++) if(isprime(i)){ pr[i]=1; p[lp++]=i; }}
用到了素数筛选的思想,但是很明显一些数被重复筛选。
普通筛选法1
const int N=100000;bool pr[N];int p[N],lp;void initp(){ for(int i=2;i<N;i++) {if(!pr[i]){ p[lp++]=i; for(int j=i+i;j<N;j+=i) pr[j]=1; } }}
普通筛选法2
const int N=100000;bool pr[N];int p[N],lp;void initp(){for(int i=4;i<N;i+=2)pr[i]=1; for(i=2;i<N;i++) if(!pr[i]){ p[lp++]=i; if(N/i>=i) for(int j=i*i;j<N;j+=i*2) pr[j]=1; }}普通筛选法3
void calprime(){ long long i,j; memset(vis,0,sizeof(vis)); priLen = 0; for(i = 2; i <= M; i++) if(!vis[i]){ prime[priLen++] = i; for(j = i*i; j <=M; j+=i) vis[j] = 1; }}
文艺的素数筛选法
保证了每个数只被筛选一次,且是被最小质因数筛选,时间复杂度达 到o(n)。
const int N=1000000;int pr[N],p[N/10],lp;void gp(){ for(int i=2;i<N;i++) { if(!pr[i])p[lp++]=pr[i]=i; for(int j=0;j<lp && i*p[j]<N;j++){ pr[i*p[j]]=p[j]; if(i%p[j]==0)break; } }}
- 二逼 普通 文艺的素数筛选法
- 普通&文艺&二逼的iPhone音乐应用推荐
- 我们该如何设计数据库:“普通——文艺——二逼”的区别
- 普通青年,文艺青年,二逼青年之程序员版
- c++普通程序员/文艺程序员/二逼程序员
- BZOJ3196 3223 3224 二逼平衡树,文艺平衡树,普通平衡树
- 普通青年、文艺青年、二B青年们的表白
- 求素数(普通+筛选)
- 平衡树三题:bzoj3224+bzoj3223+bzoj3196 普通平衡树 文艺平衡树 二逼平衡树(splay)
- 【算法】普通方法和筛选法求素数
- 素数筛选法(普通筛和线性筛)
- 关于素数的筛选法
- 改进的筛选素数法..
- 改进的筛选素数法
- 简单的素数筛选法
- 素数的筛选找法
- 素数筛选之“普通筛选”和“线性筛选”
- Eratosthenes筛选法求素数的算法
- [Go] --- LiteIDE配置Go语言的代码智能补全
- 例题4-9
- class 与 struct 的区别
- 查詢和刪除表中重複記錄(無Id值)
- CSS、JavaScript开发者必备的10款最佳工具
- 二逼 普通 文艺的素数筛选法
- TimeSpan的用法
- 运行jar应用程序引用其他jar包的四种方法
- 幸运数
- 各种PDF转换问题(一).在C++中借助Acrobat将PDF转为TIFF
- Oracle Foundation(7-9)
- 集合的概述
- delphi LPT1端口打印与开钱箱
- pthread_detach手册