文章目录

  • 一 什么是素数?
  • 二 素数的判断方法
    • 2.1 方法1
    • 2.2 方法2
    • 2.3 方法3
    • 2.4 方法4

一 什么是素数?

质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数(规定1既不是质数也不是合数)。

二 素数的判断方法

以下求的是100–200之间的素数,可以根据自己想要的范围自行修改.

2.1 方法1

暴力求解法,这样执行的次数是2–i-1次, 超过i一般的数字,肯定是不是i的倍数,这个代码是做了很多次没有意义的计算.

#include<stdio.h>
int main()
{int i = 0;int j = 0;int count = 0;//计数素数的个数//要求解素数的范围for (i = 101; i <= 200; i++){for (j = 2; j < i; j++){//如果i%j==0则说明这个数可以被其他数整除if (i % j == 0){break;}}//如果j>i则说明没有数可以整数iif (j > i){count++;printf("%d ", i);}}printf("\n素数的个数为:%d", count);
}

2.2 方法2

又上面的方法我们可以改进,每拿到一个数据,只需要检测其:[2, i/2]区间内是否有元素可以被整除,可以说明i不是素数.

#include<stdio.h>
int main()
{int i = 0;int j = 0;int count = 0;//计数素数的个数//要求解素数的范围for (i = 101; i <= 200; i++){for (j = 2; j <= i/2; j++){//如果i%j==0则说明这个数可以被其他数整除if (i % j == 0){break;}}//如果j>i/2则说明没有数可以整数iif (j > i/2){count++;printf("%d ", i);}}printf("\n素数的个数为:%d", count);
}

2.3 方法3

方法二还是包含了一些重复的数据,再优化:
如果i能够被[2, sqrt(i)]之间的任意数据整除,则i不是素数
原因:如果 m 能被 2 ~ m-1 之间任一整数整除,其二个因子必定有一个小于或等于sqrt(m),另一个大于或等于 sqrt(m)。

#include<stdio.h>
#include<math.h>
int main()
{int i = 0;int j = 0;int count = 0;//计数素数的个数//要求解素数的范围for (i = 101; i <= 200; i++){for (j = 2; j <= sqrt(i); j++){//如果i%j==0则说明这个数可以被其他数整除if (i % j == 0){break;}}//如果j>sqrt(i)则说明没有数可以整数iif (j > sqrt(i)){count++;printf("%d ", i);}}printf("\n素数的个数为:%d", count);
}

2.4 方法4

我们知道,偶数肯定不是素数,我们在写条件范围的时候,我们每次把i的值+2,这样就可以避免计算偶数的次数

#include<math.h>
int main()
{int i = 0;int j = 0;int count = 0;//计数素数的个数//要求解素数的范围for (i = 101; i <= 200; i = i + 2){for (j = 2; j <= sqrt(i); j++){//如果i%j==0则说明这个数可以被其他数整除if (i % j == 0){break;}}//如果j>=i则说明i没有数可以整数iif (j > sqrt(i)){count++;printf("%d ", i);}}printf("\n素数的个数为:%d", count);
}

完结~

详解素数(质数)的判断相关推荐

  1. 详解JavaScript变量类型判断及domReady原理 写得很好

    原文:详解JavaScript变量类型判断及domReady原理 我们知道,在开发JavaScript时候,经常要判断JavaScript变量类型,此 JavaScript教程 详细介绍JS变量的判断 ...

  2. java 判断数组已经存满_详解Java中数组判断元素存在几种方式比较

    1. 通过将数组转换成List,然后使用List中的contains进行判断其是否存在 public static boolean useList(String[] arr,String contai ...

  3. 连接linux工具Mtr,mtr命令_Linux mtr命令使用详解:网络连通性判断工具

    1.Mtr介绍 mtr是Linux中有一个非常棒的网络连通性判断工具,它结合了ping, traceroute,nslookup 的相关特性. 安装mtr工具 apt-get install mtr ...

  4. C:素数(质数)的判断以及输出

    一:质数的判断:输入一个大于3的整数,判断它是否为质数 质数的判断,这里提供两种做法: 1.直接相除至n-1 (穷举算法) 老样子,文字表达一遍便于理解.  第一种方法我们采用的是穷举算法,如果 n ...

  5. 素数/质数的判断(C++)

    思路:判断一个整数n是否为素数,只需用2到n-1之间的每一个整数去除,如果都不能被整除,那么m就是一个素数. 判断定理:"n不能够被不大于根号n的任何素数整除,则n是一个素数" 用 ...

  6. [转载] python字符串_一文详解Python字符串条件判断方法

    参考链接: Python字符串| isdecimal 作者 | 张小吉 来源 | 鸡仔说(ID:jizaishuo) 前言 人喜欢为自己的错误,找各种借口开脱.本周做算法题leetcode<39 ...

  7. linux系统中shell脚本最全详解二shell条件判断语法介绍函数分析

    目录 一.shell判断句 1.if条件判断语句 2.test判断 二.语法介绍 1.shell运算符 2.shell循环语句 三.shell函数 一.shell判断句 1.if条件判断语句 if语法 ...

  8. 【算法】素数(质数)判断方法

    注:本篇文章已搬至个人博客中, 点击前往 素数(质数)的判断在算法问题中经常遇到,这里小结几种常用的判断方法. 素数(质数)的定义 首先,我们来看一下素数(质数)的定义:质数又称素数.一个大于1的自然 ...

  9. 素数(质数)判断方法

    https://blog.csdn.net/songyunli1111/article/details/78690447  ->通俗易懂的解释 标准版:大部分人都知道的比较快的方法:判断从2到s ...

最新文章

  1. 【Qt】获取、比较Qt版本的宏和函数
  2. linux对文件的描述,对Linux文件系统的简单理解
  3. 我什么时候应该使用结构而不是类?
  4. 在方法的形参位置使用@Qualifier注解||@Autowired 与@Resource的区别
  5. 使用excel批量创建android联系人
  6. 让你的PHP也能执行JS并获得JS函数的返回值
  7. 联想e52进入bios_联想笔记本怎么设置u盘启动|联想笔记本bios设置usb启动步骤
  8. Golang原生sql操作Mysql数据库增删改查
  9. MS17-010 补丁下载官方地址
  10. 清华 计算机 学神 李凌,清华大学计算机科学与技术系 2018 年接收推荐免试.PDF...
  11. 用python处理文本数据(5)
  12. Django文档是如何组织的?
  13. CSGO显示FPS(帧数)指令集设置调用方法 2020年最新版本CSGO教程
  14. Operator ‘==‘ cannot be applied to operands of type ‘byte[]‘ and ‘string‘
  15. Google Colaboratory:一款用于深度学习的免费GPU使用方法
  16. 苏宁11.11:搜索引擎Solr在苏宁易购商品评价系统中的应用
  17. 笔记本电脑亮度调节按钮不起作用
  18. 记一次hydra密码破解神器的学习
  19. 还在用Evernote或印象笔记吗?来看看笔记神器Notion吧!
  20. hbo切尔诺贝利_HBO Max,HBO NOW和HBO Go有什么区别?

热门文章

  1. 最大规模技术重建:数据库连接从15000个到100个以下
  2. 北京地铁 Write up By K龙
  3. CentOS 7 安装 libzip 1.5.2
  4. 机器学习中的Logistic回归算法(LR)
  5. 爬虫小计(charles抓取wss数据--yy数据爬取)
  6. Windows系统_ARM处理器无法打开客户端问题解决
  7. 用python计算数学集合A-B
  8. 【调剂】无损检测与光电传感技术及应用国家工程实验室(南昌航空大学)2020年研究生调剂信息...
  9. 计算机组装基地,系统基地装机大师工具装机版V6.5
  10. 如何压缩PDF文件 压缩PDF文件的详细图文步骤