质数(prime number)又称素数,有无限个。
质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数
目前学习了判断数字n是否为质数的2种基本方法:
一、计数法
根据定义,既然质数只能够被1和他本身整除。我们可以统计出1到n范围内的整数,能够整除n的个数。再判断这个个数是否等于2就可以知道n是不是质数。
代码如下:
            int n = int.Parse(Console.ReadLine()); ;
            int sum = 0;
            for (int i = 1; i <= n; i++)
            {
                if (n % i == 0)
                {
                    sum += 1;
                }
            }
            if (sum == 2)
            {
                Console.WriteLine("n是质数");
            }
            else
            {
                Console.WriteLine("n不是质数");
            }

二、查找法
可以查找2 到n-1范围内所有的数去除n,如果能够整除,这表明这个数不是质数。
代码如下:
            int n = int.Parse(Console.ReadLine()); ;
            bool isFind = false;
            for (int i = 2; i <= n - 1; i++)
            {
                if (n % i == 0)
                {
                    isFind = true;
                    break;
                }
            }
            if (!isFind)
            {
                Console.WriteLine("n是质数");
            }
            else
            {
                Console.WriteLine("n不是质数");
            }
思考:
计数法需要判断1到n范围内的所有整数是够能整除n,如果n的值比较大相应的计算量就较大。
查找法一旦找到2到n-1范围内第一个能够整除n的数就会跳出循环,但是如果要判断出质数也要所有的都除一遍都不能整除才能得出是质数的结论,如果n的值比较大也同样会面对计算量就较大的问题。
如果一个程序中有多次判断质数,再在这些结论的基础上运行下一步程序,整个程序运行速度就会慢。比如哥赫巴德猜想(任何大于2的偶数都可以分解成2个质数的和)中如果输入的数为7位数或8位数,程序明显会慢很多才能运行完。
总的来说,计算机只能按照设定的程序来执行,算法需要人来优化。
 
 

C# 判断质数的2种基本方法的更多相关文章

  1. 字符串--java中判断字符串是否为数字的方法的几种方法?

    ava中判断字符串是否为数字的方法: 1.用JAVA自带的函数 public static boolean isNumeric(String str){ for (int i = 0; i < ...

  2. java中判断字符串是否为数字的方法的几种方法

    1.用JAVA自带的函数 public static boolean isNumeric(String str){ for (int i = 0; i < str.length(); i++){ ...

  3. return的一种用法:如果当前判断为true则跳出这个方法。

    package rom; import java.lang.*; /* * return的一种用法:如果当前判断为true则跳出这个方法. */ public class Xamle_5 { stat ...

  4. js 判断数据类型的几种方法

    判断js中的数据类型有一下几种方法:typeof.instanceof. constructor. prototype. $.type()/jquery.type(),接下来主要比较一下这几种方法的异 ...

  5. javascript 判断数据类型的几种方法

    javascript 判断数据类型的几种方法一.typeof 直接返回数据类型字段,但是无法判断数组.null.对象 typeof 1 "number" typeof NaN &q ...

  6. js中判断数据类型的四种方法总结

    js中判断数据类型的四种方法 前言 在js中,我们经常需要判断数据的类型,那么哪些方法可以用来判断数据的类型呢?哪种方法判断数据类型最准确呢? 我们来一个个分析: 1.typeof typeof是一个 ...

  7. (转载)java中判断字符串是否为数字的方法的几种方法

    java中判断字符串是否为数字的方法: 1.用JAVA自带的函数 public static boolean isNumeric(String str){ for (int i = 0; i < ...

  8. isprime_判断质数

    判断质数的方法有很多,首先是最简单的试除法,判断n以内的质数的话时间复杂度为n*sqrt(n)当然是很慢的了 下面提供三种判断质数的方法: 首先是跑5051ms的这个是埃拉托斯特尼筛法 且不加优化 核 ...

  9. CSS3与页面布局学习总结(四)——页面布局大全BFC、定位、浮动、7种垂直居中方法

    目录 一.BFC与IFC 1.1.BFC与IFC概要 1.2.如何产生BFC 1.3.BFC的作用与特点 二.定位 2.2.relative 2.3.absolute 2.4.fixed 2.5.z- ...

随机推荐

  1. WordPress部署

    WordPress部署 WordPress是一个门户.博客网站的制作工具,php开发,自带后台,可以很简便的安装主题,还拥有一个庞大的主题网站生态. 软件下载:https://cn.wordpress ...

  2. opencv_traincascade 训练自己的检测器

    2013年08月08日 ⁄ 综合 ⁄ 共 1061字 ⁄ 字号 小 中 大 ⁄ 评论关闭   经过近一个月的工程实战,把自己累积的经验分享给大家,教你如何训练一个收敛的,比opencv自带的data效 ...

  3. Vue cli 脚手架使用

    1:基本的安装 安装node 安装npm Windows 更改环境变量 重启 环境变量生效 安装vue-cli 安装webpack 2:项目构建 https://segmentfault.com/a/ ...

  4. asp.net 初级程序员面试题【待续】

     C# 常见的排序方式 冒泡排序(Bubble sort) 堆排序(Heap sort) 插入排序(Insertion sort) 归并排序(Merge sort) 快速排序(Quick sort) ...

  5. s 销售视图数据

    INSERT,需将公司ID匹对到以下EXCEL表 INSERT,需将公司ID匹对到以下EXCEL表 [Public] ConnectString=host="siebel://10.10.0 ...

  6. NBU 还原主/others服务器的SQLSERVER

    一.将数据库还原回主服务器 1.运行NetBackup MS SQL Client(10.10.0.14 administrator)2.设置连接属性 testsa 添加验证凭据 3.选择恢复,再选择 ...

  7. Oracle 注意点大全

    1.索引 经常查询的字段.主表与从表关联主键id必须建立索引.

  8. Unity Shader-简单均值模糊

    http://blog.csdn.net/puppet_master/article/details/52547442 与Amplify中的Simple Blur例子实现一样

  9. 最大正方形 · Maximal Square

    [抄题]: 在一个二维01矩阵中找到全为1的最大正方形 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0 返回 4 [暴力解法]: 时间分析: 空间分析:i j 中保留一 ...

  10. 在线编辑器CKeditor,CKfinder

    在线编辑器的分类: 常见的在线编辑器有很多,比较常用的有FCKeditor(在线编辑器——Ajax 浏览器 端服务器文件管理器),CKeditor(在线编辑器与服务器端文件管理器的分离,) 其中CKe ...