线性O(N)时间复杂度求素数 , 筛法
 1 /* 2 线性时间求出1-N 的素数 , 时间复杂度为O( N) ; 3 一个合数可以表示成若干个素数的积  4 比如说 i = 6 =2 * 3 , A = p1 * p2 * p3 .. * pn , 其中pi为素数 ,p1最小 , 只筛到p1 * i即可  5 我们只筛 最小的 2 * i 不筛3 * i ;    6 */ 7 #include <stdio.h> 8 #include <memory.h> 9 const int MaxNum = 100000;10 11  12 bool isPrime[MaxNum] ; //数组定义该数字是否为素数 13 int prime[ MaxNum ] ; // 存下素数 14 int total = 0 ; //第几个素数 15 16 void seive( int Max  )17 {18       memset( isPrime , true , sizeof( isPrime ));19       memset( prime , 0 , sizeof( prime ));20       isPrime[0 ] = false ;21       isPrime[1] = false ;22       for ( int i = 2 ; i <= Max ; i++ )23       {24           if ( isPrime[i] )25              prime[ ++ total ] = i ;26           for ( int j = 1 ; j <= total && i * prime[j] <= Max ; j++)27           {28               isPrime[ i * prime[j] ] = false ;29               if (!( i % prime[j])) break;30               }31           }32      }33 int main()34 {35     int input;36     seive( MaxNum );37     while ( scanf("%d" , &input )  , input )38     {39           40           printf( "%d" , prime[ input ]);41           }42     return 0 ;43     }

posted on 2011-12-24 13:24 lzhenf 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/lzhenf/archive/2011/12/24/2300271.html

线性O(N)时间复杂度求素数 , 筛法相关推荐

  1. 一般筛法求素数+快速线性筛法求素数

    一般筛法求素数+快速线性筛法求素数 标签: 正则表达式算法优化扩展c 2010-08-22 01:28 28738人阅读 评论(8) 收藏 举报  分类: 算法学习资料(5)  版权声明:本文为博主原 ...

  2. 一般筛法和快速线性筛法求素数 求素数的一点总结

    素数总是一个比较常涉及到的内容,掌握求素数的方法是一项基本功. 基本原则就是题目如果只需要判断少量数字是否为素数,直接枚举因子2 ..N^(0.5) ,看看能否整除N. 如果需要判断的次数较多,则先用 ...

  3. 求素数: 一般线性筛法 + 快速线性筛法

    From: http://blog.csdn.net/dinosoft/article/details/5829550 素数总是一个比较常涉及到的内容,掌握求素数的方法是一项基本功. 基本原则就是题目 ...

  4. 数论 判断素数:普通素数判别 线性筛 二次筛法求素数 米勒拉宾素数检验

    普通的素数判断法 当我们要判断一个数字是否是素数的时候,往往会直接看这个数字模1到这个数字的根号,看有没有等于零的,从而判断这个数字是不是素数,这样做的时间复杂度为O(sqrt(n)) bool is ...

  5. 素数筛法求素数(线性时间)

    摘自:http://blog.csdn.net/once_hnu/article/details/6302283 逆向思维的典型应用! 1)普通方法判断素数:O(n*sqrt(n)) 2)筛法求素数: ...

  6. 线性筛法求素数c语言,[算法]素数筛法(埃氏筛法线性筛法)

    一.素数筛的定义 给定一个整数n,求出[1,n]之间的所有质数(素数),这样的问题为素数筛(素数的筛选问题). 二.埃氏筛法(Eratosthenes筛法) 埃氏筛法又叫做Eratosthenes筛法 ...

  7. 筛法快速求素数——leetcode计数质数

    在算法竞赛中经常会遇到求质数的问题,这种题目一般都是要求出一定范围内[0,n]所有的质数或者质数的个数.最直接的思路就是根据质数的定义来判定一个数是不是质数(即一个数不能被除1和它本身外的任何数整除) ...

  8. 素数筛法(传统普通、朴素筛法、埃式筛法、欧拉筛法(线性筛))

    素数筛法(普通.朴素筛法.埃式筛法.欧拉筛法) 1.题目 2.分析 3.代码 传统普通 朴素筛法 朴素筛法(6.14) 埃式筛法 埃式筛法(6.14) 欧拉筛法(线性筛) 欧拉筛法(线性筛 6.14) ...

  9. 快速求素数表——埃氏筛法与欧拉筛法

    快速求素数表--埃氏筛法与欧拉筛法 快速求素数表埃氏筛法与欧拉筛法 埃氏筛法 埃氏筛法原理 埃氏筛法时间复杂度 埃氏筛法代码求出1000000以内的素数并且输出n个素数 欧拉筛法 欧拉筛法原理 欧拉筛 ...

最新文章

  1. [Python] sys.argv[] 用法
  2. nysql collation
  3. ST算法解决RMQ问题
  4. linux通过I2C地址查看设备名称
  5. 接口测试学习之json
  6. 李飞飞最新研究成果!斯坦福正在用算法判断政治倾向
  7. LBP(Local Binary Patterns)局部二进制模式
  8. JUnit的优点在于什么地方?和main方法有什么不同?
  9. custompage.width 不能小数吗_为什么有军人戴眼镜?他们的裸眼视力合格吗?
  10. 实用win7桌面小工具
  11. 磁钉导航差速式AGV控制实验
  12. 织梦dedecms会员设置、互动设置教程
  13. Lorenzo Von Matterhorn(暴力)(树)
  14. RabbitMQ:使用Docker构建RabbitMQ高可用负载均衡集群
  15. 深入理解iOS App的启动过程
  16. opencv-ios开发笔记11 亮度和色温调节
  17. laravel sail
  18. python判断字符是英文字母怎么回事_python判断字符串是否包含字母
  19. Hive中小表与大表关联(join)的性能分析
  20. 广西公需科目 当代科学技术前沿知识 考试答案

热门文章

  1. Deepmind 预测地图论文背后:神经科学或将助力AI迎来新突破
  2. 你的编程技能是否与时俱进? TIOBE 4 月榜单出炉
  3. 心急如焚!程序员拥有 2.2 亿美元巨款,却想不起密码
  4. Swift、Flutter 共同瞄准 Windows!
  5. Python 实战多元线性回归模型,附带原理+代码
  6. PHPCMS V9数据库表结构分析
  7. mysql启动、关闭与登录
  8. HighCharts基本使用
  9. 机器学习基础---架构设计
  10. Vue项目build后静态资源文件路径或新建文件夹图片路径找不到的问题