119_素数算法之 埃氏筛
2016-01-04 16:15
274 查看
寻找n以内的所有的素数,埃氏筛的实现原理如下:
如果发现一个素数,就将其倍数全都删去,那么数组中下一个未被删去的数一定是素数(也是数组中最小的那个数),反复执行,最后得到素数表。
复杂度为O(nloglogn),接近线性。
如果发现一个素数,就将其倍数全都删去,那么数组中下一个未被删去的数一定是素数(也是数组中最小的那个数),反复执行,最后得到素数表。
复杂度为O(nloglogn),接近线性。
// // 119_prime.cpp // changlle // // Created by user on 1/4/16. // Copyright (c) 2016 user. All rights reserved. // #include <iostream> using namespace std; const int inf=100; int prime_array[inf]; bool is_prime[inf+1]; int sieve (int n) { int p=0; for (int i=0;i<=n;i++) is_prime[i]=true; is_prime[0]=false; is_prime[1]=false; for (int i=2;i<=n;i++) { if (is_prime[i]) { prime_array[p++]=i; //cout<<i<<endl; for (int m=2;m*i<=n;m++) is_prime[m*i]=false; } } return p; } int main() { int num=sieve(11); cout<<num<<endl; return 0; }
相关文章推荐
- UGUI ScrollRect滚动优化:无限循环利用Item
- iOS判断输入框不为空格以及空
- 【第三章】 DI 之 3.3 更多DI的知识 ——跟我学spring3
- R语言 我要如何开始R语言
- weblogic环境,应用上传图片报Could not initialize class sun.awt.X11.XToolkit
- Android 关闭软键盘
- 11.2.0.2以上升级12c
- 使用微信内置浏览器点击下拉框出现页面乱跳转现象(iphone),该怎么办
- java 代码中如何预防空指针异常
- 开发中的Bean和Dao类
- yuv 4:2:2 编码为 bt1120
- include“libavformat/avformat.h” file not found
- 获取css外部样式的方法及兼容代码
- 2015年中项目总结下
- ASP.NET 生命周期
- plist存储
- Android SDK Manager国内更新代理
- Java并发编程:同步容器
- 【Flex学习】Flex4学习网站
- PHPUnit 在phpstrom中composer项目的应用配置