[原博客] 关于线性筛
2014-09-07 23:55
148 查看
埃氏筛法:从2开始,找到第一个没有被筛的数,把它标记为素数,然后把它的2倍、3倍……筛掉。
复杂度
改进的埃氏筛法:从2开始,找到第一个没有被筛的数
复杂度
线性筛:保证每个数都被它的最小素因子筛掉。
复杂度
C++写起来大概是这样的:
View Code
这样就求出了2~1000w的欧拉函数。
方便快捷。
复杂度
O(nlogn)。
改进的埃氏筛法:从2开始,找到第一个没有被筛的数
x,把它标记为素数,然后把它的
x倍、
x+1倍……筛掉。
复杂度
O(nloglogn)。
线性筛:保证每个数都被它的最小素因子筛掉。
复杂度
O(n)。
C++写起来大概是这样的:
int mindiv[10000005],tot,prime[10000050],phi[10000050]; int main(){ for(int i=2;i<=10000000;i++){ if(!mindiv[i]){ mindiv[i]=i;prime[tot++]=i;phi[i]=i-1;//1 } for(int j=0;prime[j]*i<=10000000;j++){ mindiv[prime[j]*i]=prime[j]; if(prime[j]==mindiv[i]){ phi[prime[j]*i]=phi[i]*prime[j] ;break;//2 } phi[prime[j]*i]=phi[i]*(prime[j]-1);//3 } } return 0; }
View Code
这样就求出了2~1000w的欧拉函数。
方便快捷。
相关文章推荐
- 转载一些关于博客的文章
- 关于博客群组站点
- 关于“博客是否能够商业化”的思考
- 关于 CSDN 博客的问题
- 关于博客无法正确显示后台信息的问题
- 关于解决CommunityServer使用中文名字注册自动创建博客和相册的问题
- 关于博客
- 关于信仰---看了小莉姐博客有感
- 关于我的博客
- 关于个人博客站点
- 今天终于决定有一个自已的博客。有时间要多写写关于自于的人生,关于自已的思想
- 关于博客应用
- 关于建立自己的网上留言板(也就是所谓的博客)
- 9月中旬写作提纲:假如我是VC,关于博客的一些想法
- 关于csdn博客服务的担心
- 关于修改掉博客页面标题文字--浏览器上面的标题Title的记录
- 关于博客
- 关于天文博客
- 关于3月27日部分用户不能访问个人博客前台的问题答复
- 关于“带头大哥”关闭博客的思考