素数/质数的判断(C++)
思路:判断一个整数n是否为素数,只需用2到n-1之间的每一个整数去除,如果都不能被整除,那么m就是一个素数。
判断定理:“n不能够被不大于根号n的任何素数整除,则n是一个素数”
用代买表示如下:
int is_prime = trure;
int i = 2;
while (i <= (sqrt(n))) // 当i小于n的平方根时
{
if (n % i == 0) // 如果i处以n等于0,
is_prime == false; // i不是素数
i++; // 把i加1
}
完整代码:
1 #include <iostream> 2 #include <cmath> 3 4 using namespace std; 5 6 int main() 7 { 8 int n; // Number to test for prime-ness 9 int i; // Loop counter 10 int is_prime = true; // Boolean flag... 11 // Assume true for now. 12 13 // Get a number from the keyboard. 14 15 cout << "Enter a number and press ENTER: "; 16 cin >> n; 17 18 // Test for prime by checking for divisibility 19 // by all whole numbers from 2 to sqrt(n). 20 21 i = 2; 22 while (i <= sqrt(n)) // While i is <= sqrt(n). 23 { 24 if (n % i == 0) // If i divides n, 25 is_prime = false; // n is not prime 26 i++; // add 1 to i. 27 } 28 29 // print results 30 if (i <= sqrt(n)) 31 cout << "Number is prime." << endl; 32 else 33 cout << "Number is not prime." << endl; 34 35 return 0; 36 }
View Code
优化:
这个程序可以在找到第一个余数为0的数之后,即使推出循环,而不是继续循环下去,那只会浪费CPU资源。
int is_prime = trure;
int i = 2;
while (i <= (sqrt(n))) // 当i小于n的平方根时
{
if (n % i == 0) // 如果i处以n等于0,
{
is_prime == false; // i不是素数
break; // 不是素数,立即结束循环。
}
i++; // 把i加1
}
}
转载于:https://www.cnblogs.com/wuzhenbo/archive/2012/04/26/2470357.html
素数/质数的判断(C++)相关推荐
- C:素数(质数)的判断以及输出
一:质数的判断:输入一个大于3的整数,判断它是否为质数 质数的判断,这里提供两种做法: 1.直接相除至n-1 (穷举算法) 老样子,文字表达一遍便于理解. 第一种方法我们采用的是穷举算法,如果 n ...
- 详解素数(质数)的判断
文章目录 一 什么是素数? 二 素数的判断方法 2.1 方法1 2.2 方法2 2.3 方法3 2.4 方法4 一 什么是素数? 质数又称素数.一个大于1的自然数,除了1和它自身外,不能被其他自然数整 ...
- 【算法】素数(质数)判断方法
注:本篇文章已搬至个人博客中, 点击前往 素数(质数)的判断在算法问题中经常遇到,这里小结几种常用的判断方法. 素数(质数)的定义 首先,我们来看一下素数(质数)的定义:质数又称素数.一个大于1的自然 ...
- 素数(质数)判断方法
https://blog.csdn.net/songyunli1111/article/details/78690447 ->通俗易懂的解释 标准版:大部分人都知道的比较快的方法:判断从2到s ...
- 代码实现:判断101-200之间有多少个素数(质数),并输出所有素数。 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。...
package com.heima.Coding;/*判断101-200之间有多少个素数(质数),并输出所有素数.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明 ...
- C语言:判断一个数是否为素数/质数
素数/质数的概念:一个的自然数,除了1和它自身外,不能被其他自然数整除的数叫素数,否则成为合数. 0和1既不是素数也不是合数,最小的素数是2. 方法1:从2到n - 1判断有没有能整除n的数.如果有, ...
- MATLAB函数判断绝对素数,自定义函数,找出 以内所有素数(质数)并计算它们的和,matlab...
C++,VC2008,问题是 编写一个函数,找出3~1000之内,所有的素数.求高手!我在线等 #include#includevoidf(){//筛法charprime[1001];memset(p ...
- 判断素数(质数)高效算法
最近看到一篇高效的素数判断算法文章,但是文章中有些部分写的还不够完整清晰,所以在此详细记录一下此算法理解过程.(理解此算法前应先明白使用 sqrt(num) 为判断条件判断素数的方法) 此算法产生的原 ...
- java声明是否是质数,java判断是否为素数(质数)的方法
质数的定义: 对于大于1的数,如果除了1和它本身,它不能再被其它正整数整除,那么我们说它是一个质数. 判断一个数是否为质数(素数)方法: 如果是偶数,直接返回:然后从3开始,步长为2,一直到n的算术平 ...
最新文章
- 《Linux内核原理与分析》第二周作业
- 【转】 Java中的变量赋值和参数传递
- 排序算法 —— 快速排序
- 数据结构与算法--代码完整性案例分析
- P1313-计算系数【组合数,二项式定理】
- 标题在上边框中的html(fieldset标签)
- CF313D Ilya and Roads(区间DP)
- java接听电话freeswitch_java通过http协议与Freeswitch对接实现动态添加用户
- 考虑空气阻力的抛射体的matlab,考虑空气阻力的抛射体运动mtlab仿真
- 归并有效排序算法matlab,科学网—[用MATLAB写算法]之排序算法2)归并排序merge sort - 徐勇刚的博文...
- bzoj千题计划278:bzoj4590: [Shoi2015]自动刷题机
- 【数据结构】堆的手动模拟实现
- java web xml配置详解_Java Servlet web xml 配置详解
- 0到50带圆圈的数字序号有需要的吗:)
- php bmp图片下载,[gd]生成bmp格式的图片(imagebmp)_php技巧
- Mybatis中取 Oracle自增序列 重复值
- roc曲线spss怎么做_统计第十三课:SPSS ROC曲线
- Postman中请求体提交方式
- RK3288获取摄像头的Sensor ID【原创】
- Audacity合成音频的软件
热门文章
- 构建一个完整的中文智能问答系统
- 自动人脸识别高颜值抖音小姐姐并点赞(python)
- 安全测试工具_选型必看:DevOps中的安全测试工具推荐
- java word2007_Java解析word2007、Excel2003和Excel2007
- Python之代码性能分析工具(时间+内存)
- 创新方法(TRIZ)理论及应用(一)
- 某大型银行深化系统技术方案之十七:技术架构
- 基于wxpython+MySQL--实现人脸检测识别的宿舍人脸检测系统
- 有关货币,通货膨胀,经济发展的思…
- mysql listagg函数 长度过长_MySQL索引是什么?怎么做?