思路:判断一个整数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++)相关推荐

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

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

  2. 详解素数(质数)的判断

    文章目录 一 什么是素数? 二 素数的判断方法 2.1 方法1 2.2 方法2 2.3 方法3 2.4 方法4 一 什么是素数? 质数又称素数.一个大于1的自然数,除了1和它自身外,不能被其他自然数整 ...

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

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

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

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

  5. 代码实现:判断101-200之间有多少个素数(质数),并输出所有素数。 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。...

    package com.heima.Coding;/*判断101-200之间有多少个素数(质数),并输出所有素数.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明 ...

  6. C语言:判断一个数是否为素数/质数

    素数/质数的概念:一个的自然数,除了1和它自身外,不能被其他自然数整除的数叫素数,否则成为合数. 0和1既不是素数也不是合数,最小的素数是2. 方法1:从2到n - 1判断有没有能整除n的数.如果有, ...

  7. MATLAB函数判断绝对素数,自定义函数,找出 以内所有素数(质数)并计算它们的和,matlab...

    C++,VC2008,问题是 编写一个函数,找出3~1000之内,所有的素数.求高手!我在线等 #include#includevoidf(){//筛法charprime[1001];memset(p ...

  8. 判断素数(质数)高效算法

    最近看到一篇高效的素数判断算法文章,但是文章中有些部分写的还不够完整清晰,所以在此详细记录一下此算法理解过程.(理解此算法前应先明白使用 sqrt(num) 为判断条件判断素数的方法) 此算法产生的原 ...

  9. java声明是否是质数,java判断是否为素数(质数)的方法

    质数的定义: 对于大于1的数,如果除了1和它本身,它不能再被其它正整数整除,那么我们说它是一个质数. 判断一个数是否为质数(素数)方法: 如果是偶数,直接返回:然后从3开始,步长为2,一直到n的算术平 ...

最新文章

  1. 《Linux内核原理与分析》第二周作业
  2. 【转】 Java中的变量赋值和参数传递
  3. 排序算法 —— 快速排序
  4. 数据结构与算法--代码完整性案例分析
  5. P1313-计算系数【组合数,二项式定理】
  6. 标题在上边框中的html(fieldset标签)
  7. CF313D Ilya and Roads(区间DP)
  8. java接听电话freeswitch_java通过http协议与Freeswitch对接实现动态添加用户
  9. 考虑空气阻力的抛射体的matlab,考虑空气阻力的抛射体运动mtlab仿真
  10. 归并有效排序算法matlab,科学网—[用MATLAB写算法]之排序算法2)归并排序merge sort - 徐勇刚的博文...
  11. bzoj千题计划278:bzoj4590: [Shoi2015]自动刷题机
  12. 【数据结构】堆的手动模拟实现
  13. java web xml配置详解_Java Servlet web xml 配置详解
  14. 0到50带圆圈的数字序号有需要的吗:)
  15. php bmp图片下载,[gd]生成bmp格式的图片(imagebmp)_php技巧
  16. Mybatis中取 Oracle自增序列 重复值
  17. roc曲线spss怎么做_统计第十三课:SPSS ROC曲线
  18. Postman中请求体提交方式
  19. RK3288获取摄像头的Sensor ID【原创】
  20. Audacity合成音频的软件

热门文章

  1. 构建一个完整的中文智能问答系统
  2. 自动人脸识别高颜值抖音小姐姐并点赞(python)
  3. 安全测试工具_选型必看:DevOps中的安全测试工具推荐
  4. java word2007_Java解析word2007、Excel2003和Excel2007
  5. Python之代码性能分析工具(时间+内存)
  6. 创新方法(TRIZ)理论及应用(一)
  7. 某大型银行深化系统技术方案之十七:技术架构
  8. 基于wxpython+MySQL--实现人脸检测识别的宿舍人脸检测系统
  9. 有关货币,通货膨胀,经济发展的思…
  10. mysql listagg函数 长度过长_MySQL索引是什么?怎么做?