1.原始算法

就是将质数的定义翻译成代码,就要看i是否能被小于它的sqrt( i )的数整除。

时间复杂度O(n*sqrt(n))  空间复杂度O(m) m为质数个数。

2.质数筛法

①定义bool is_prime[n+1],初始化为1(奇数为1,偶数为0)

②已经2为最小的质数,将2的倍数的布尔值都设为false,如此类推。

要注意的是最好不要把求sqrt(n)放入循环体内。

③依据is_prime数组输出相应的质数。

时间复杂度近似O(n) 空间复杂度O(n)

#include #include

using namespacestd;bool* prime_sieve(intn) {bool* p=new bool[n+1];

memset(p,1, sizeofp);int sn=(int)sqrt((double)n);for (int i = 2; i <= sn; i++)if(p[i])for (int j = 2*i; j <= n; j+=i)

p[j]= false;returnp;

}voidmain()

{intn;

cin>>n;bool *primes;

primes=prime_sieve(n);for(int i=2;i<=n;i++)

{if(primes[i])

{

cout<

}

}

cout<

}

质数相关数学知识:

1.高斯猜测,n以内的素数个数大约与n/ln(n)相当,或者说,当n很大时,两者数量级相同。这就是著名的素数定理。

2.十七世纪费马猜测,2的2^n次方+1,n=0,1,2…时是素数,这样的数叫费马素数,可惜当n=5时,2^32+1就不是素数,

至今也没有找到第六个费马素数。

3.18世纪发现的最大素数是2^31-1,19世纪发现的最大素数是2^127-1,20世纪末人类已知的最大素数是2^859433-1,用十进制表示,这是一个258715位的数字。

4.孪生素数猜想:差为2的素数有无穷多对。目前知道的最大的孪生素数是1159142985×2^2304-1和1159142985×2^2304+1。

5.歌德巴赫猜想:大于2的所有偶数均是两个素数的和,大于5的所有奇数均是三个素数之和。其中第二个猜想是第一个的自然推论,因此歌德巴赫猜想又被称为1+1问题。我国数学家陈景润证明了1+2,即所有大于2的偶数都是一个素数和只有两个素数因数的合数的和。国际上称为陈氏定理。

mysql 判断质数_质数(素数)判断算法总结相关推荐

  1. python判断是否质数_质数判断python

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! python3初学实践案例(11)判断质数以及计算一个数字的质因数昨天晚上看到群 ...

  2. mysql 手机号省份_根据手机号 判断省份和运营商

    移动号段: 134 135 136 137 138 139 147 148 150 151 152 157 158 159 165 172 178 182 183 184 187 188 198 联通 ...

  3. java素数对算法_Java版本 质数(也叫素数)算法

    int MaxNum = 100000; // 查找 2到MaxNum 这范围内的素数 ( MaxNum 要>= 2 ). int i, j; // 计数器. int PrimeTemp [] ...

  4. java 正则判断二进制_用正则表达式判断一个二进制数是否能被3整除

    我们之前已经见过了正则表达式的一些很特殊的用法.这里我们再来看一个:用正则表达式判断数的整除性.例如,下面这个表达式可以匹配01串S当且仅当S是一个可以被3整除的二进制数. ^1((10*1)|(01 ...

  5. java判断题_【Java判断题】请大神们进来看下、这些判断题你都知道多少~

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 .判断改错题(每题2分,共20分)(正确的打√,错误的打×并说明原因) 1. Java系统包提供了很多预定义类,我们可以直接引用它们而不必从头开始编写程序 ...

  6. java 如何判断余数_用java判断一个数是不是回文数!

    哈喽大家好,这里是Java小白成长记! 昨天分享了怎么来判断一个数字的奇偶性,其中用到了if选择语句和求余运算,虽然都不是很难的知识点,但是也不可能分享一次就不管了,所以今天继续分享一个和它俩有关的代 ...

  7. python判断成年_用python判断你是青少年还是老年人

    今天来给大家讲讲python中最基本的 if 条件语句,这几乎是所有编程语言中都存在的语句,只是语法结构稍有不同. 程序之所以能自动处理很多的事情,if条件语句在这里功不可没,程序可以通过if来判断不 ...

  8. python判断成年_使用python判断你是青少年还是老年人

    今天来给大家讲讲python中最基本的 if 条件语句,这几乎是所有编程语言中都存在的语句,只是语法结构稍有不同. 程序之所以能自动处理很多的事情,if条件语句在这里功不可没,程序可以通过if来判断不 ...

  9. mysql最大公约数_最大公约数用算法

    世界上最早的算法:辗转相除法(求两个自然数最大公约数) 在数学界,辗转相除法,又称欧几里得算法,被认为是世界上最早的算法(公元前300年),该算法用于求两个最大公约数的算法.辗转相除法首次出现于欧几里 ...

  10. c语言判断一个数是不是质数的n次方,c语言实践 判断一个数是不是素数

    int main() { int input = 0; scanf_s("%d",&input); if (input < 2) { printf("wro ...

最新文章

  1. 基于Hash的消息认证码HMAC简介及在OpenSSL中使用举例
  2. Swift 反射Mirror的使用
  3. 函数组:SPO1/2/3/4/5/6/8
  4. 抽象类、抽象方法与代码块
  5. 【30分钟学完】canvas动画|游戏基础(1):理论先行
  6. 项目中缺少maven dependencis,或者pom文件报红
  7. 深度学习导论(2)深度学习案例:回归问题
  8. elementui 进度条怎么做_小E,Excel中这样的进度条是怎么做出来的?
  9. 微信公众平台开发问答 【转发】
  10. [开发笔记]-判断当前是否联网
  11. TensorFlow GAN项目程序回顾2020.12.03
  12. Maven工程解决pom依赖红色波浪线报错
  13. 从服务端接收数组_Kafka系列第6篇:消息是如何在服务端存储与读取的,你真的知道吗?...
  14. json格式化工具有哪些?在项目中使用什么工具来格式化JSON数据?
  15. 黑马Python笔记3
  16. windows中如何识别RTL8111B/8111C/8111D/8111E/8111F网卡 转自网络
  17. 吴恩达机器学习 编程作业 python 版提交方法以及代码-week2
  18. TensorFlow 系列案例(2):自然语言处理-TensorFlow + Word2Vec
  19. Bootstrap折叠导航栏
  20. 【每日一读】ALG: Fast and Accurate Active Learning Framework for Graph Convolutional Networks

热门文章

  1. 笔记:WPS关于设置页眉页脚的问题
  2. 前端实现——html2pdf功能(完成)
  3. PS笔刷素材套装:81种自定义树叶水彩/水粉画
  4. 关于微信各名词的英文翻译
  5. jquery设置禁止浏览器刷新
  6. BIOS int 10H中断介绍
  7. u盘如何在计算机应用内存,u盘扩大内存,小编教你如何用U盘扩展内存
  8. 律师视角下网络爬虫技术的罪与罚
  9. 一文讲清微服务架构、分布式架构、微服务、SOA
  10. Ubuntu 16.04 修改Home目录下的 中文目录 为英文目录