任何一个数都可以写成:6N,6N+1,6N+2,6N+3,6N+4,6N+5(N为0.1.2.3.....)中的一种形式(因为对任何一个数对6取模一定能得到这其中的一个形式)

其中当N大于等于1时,6N,6N+2,6N+4,都能被2整除,6N+3能被3整除。所以6N,6N+2,6N+3,6N+4,都不可能是素数

所以只要对6N+1,6N+5进行素数测试就能得到所有给定范围内的素数。

时间复杂度严格小于O(sqrt(N)*N)

int prime[max],k=0;
bool IsPrime(int x)
{if(x==2)return true;if(k%2==0)return false;for(int i=3;i*i<k;i++){if(k%i==0)return false;}return true;
}
void doprime()
{for(int i=0;i<=max;i+=3){for(int j=0;j<2;j++)if(IsPrime(2(i+j)-1))prime[k++]=2(i+j)-1;}
}

  

转载于:https://www.cnblogs.com/modengdubai/p/4767974.html

6N+/-1素数测试法相关推荐

  1. nefu 120 梅森素数

    题意:给出p(1<p<=62),让你求Mp=2^p-1是否为梅森素数. 梅森素数:若p为素数,且Mp=2^p-1也是素数,则Mp为梅森素数. 若p为合数,Mp=2^p-1一定为合数 若p为 ...

  2. 数论及其应用——同余式定理

    这篇文章我们将介绍数论当中几个很重要的定理:威尔逊定理.费马小定理以及欧拉定理,并讨论一些基于这些定理的算法. 首先我们给出费马小定理:如果p是素数,并且gcd(a,p) = 1 , 那么有a^(p- ...

  3. 关于素数常用结论--威尔逊定理、欧拉定理、费马小定理、米勒罗宾算法

    再需要判定的数比较大时,用枚举法肯定不行的,但目前数学界也没有任何一种又快又准确的判定素数的方法,并且也证明了素数不存在任何一种通项表达式.但作为初等数论中最大的一部分内容,数学家们对素数性质进行了大 ...

  4. 实验三:实现一个大素数生成算法

    一.实验内容 掌进一步掌握大素数分解的一般原理和实现方法.能用间接方法实现大素数分解.用代码实现Solovay-Strassen素性测试法或Miller-Rabin素性测试法. 二.分实现一个大素数生 ...

  5. js 正则之检测素数

    原文:js 正则之检测素数 相信很多人应该看过这篇文章,我第一次看到的时候是11年的样子,那时候学vbs的时候看过这个问题. 原文<检查素数的正则表达式>,在文章里已经解释了他是怎么判断的 ...

  6. 洛谷P1036选数(素数+组合数)

    题目链接:https://www.luogu.org/problemnew/show/P1036 主要考两个知识点:判断一个数是否为素数.从n个数中选出m个数的组合 判断一个数是否为素数: 素数一定是 ...

  7. 用 js判断 一个数是否是素数(质数)_2020-09-20:如何判断一个数是质数?

    福哥答案2020-09-20:#福大大架构师每日一题# 1.试除法.朴素素数筛,埃氏筛,欧拉筛和区间筛.代码采用朴素素数筛. 2.费尔马素性测试法法.费马小定理:假如p是质数,a是整数,且a.p互质, ...

  8. (最优解)L1-028 判断素数 (10分)——17行代码AC

    立志用更少的代码做更高效的表达 本题的目标很简单,就是判断一个给定的正整数是否素数. 输入格式: 输入在第一行给出一个正整数N(≤ 10),随后N行,每行给出一个小于2 ​31 ​​ 的需要判断的正整 ...

  9. c语言列出1~100所有素数_一次找出范围内的所有素数,埃式筛法是什么神仙算法?...

    今天这篇是算法与数据结构专题的第23篇文章,我们继续数论相关的算法,来看看大名鼎鼎的埃式筛法. 我们都知道在数学领域,素数非常重要,有海量的公式和研究关于素数,比如那个非常著名至今没有人解出来的哥德巴 ...

最新文章

  1. iOS架构设计-URL缓存(上)
  2. ARM汇编:汇编中proc、endp、ret、near、far指令用法
  3. 基于Yolov5的烟火检测——模型训练与C++实现部署
  4. C++ 应用程序性能优化
  5. 阿里云江岑:云原生在边缘形态下的升华
  6. mpu 配置内存空间_ARM存储器之:存储保护单元MPU
  7. iPad开发--QQ空间,处理横竖屏布局,实现子控件中的代理
  8. Linux vi的复制和粘贴快捷键
  9. StringBuffer和StringBuilder总结
  10. sql dbcc_SQL Server中的DBCC命令的概念和基础
  11. Delphi 集合和字符串互转
  12. JS中的!=、== 、!==、=== 的用法和区别
  13. b站视频解析php,b站视频解析【调解流程】
  14. 深入浅出Spring Boot 2.x——第一章Spring Boot来临
  15. 纯Html + Css 设置Div 圆角和 鼠标悬停渐变色
  16. questasim编译报error: Declarations must precede statements. Look for stray semicolons.
  17. 转轮密码机的加解密算法实现
  18. 向量转置的怎么求导_向量求导
  19. 智能DNS解析过程详解
  20. Go 企业级框架 Revel 版全新发布

热门文章

  1. 无限火力挤爆服务器,LOL:无限火力出炉,众多云玩家宣布回归!服务器出现爆满情况...
  2. timezone java_如何将Java日期转换为特定的TimeZone格式
  3. exclude函数计算_Java Stream exclude()函数删除重复项
  4. ubuntu ssh密钥_生成SSH密钥以在Ubuntu中进行无密码登录
  5. c ++向量库_C ++中的2D向量–实用指南2D向量
  6. [nsis]安装包界面乱码问题
  7. Mac终端的一些操作命令
  8. 51Nod 1046 A^B Mod C(日常复习快速幂)
  9. curl实现发送Get和Post请求(PHP)
  10. 刚装完系统的简单优化