质数(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. predict.glm -> which class does it predict?

    Jul 10, 2009; 10:46pm predict.glm -> which class does it predict? 2 posts Hi, I have a question a ...

  2. Hyberledger-Fabric 1.00 RPC学习(2)尝试建立一个network

    本文参考:http://hyperledger-fabric.readthedocs.io/en/latest/build_network.html 这里我们学习建立第一个Hyperledger Fa ...

  3. VS2015 C#6.0 中的没有实现/支持的特性

      VS2015 C#6.0 中的没有实现/支持的特性   .数组增强:赋值 维数组 Int[] numbers: numbers = {2,3,4,5}; 维数组 Int[,] numbers2; ...

  4. mac 下 python链接mysql

    安装过程 :http://blog.topspeedsnail.com/archives/6018 注意 报错的话要先装一个东西 http://cdn.mysql.com/Downloads/Conn ...

  5. python selenium 测试环境的搭建及python mysql的连接

    又来一篇傻瓜教程啦,防止在学习的小伙伴们走弯路. 1.python 环境搭建 python官网:https://www.python.org/downloads/  选择最新版本python下载(如果 ...

  6. DataGuard的cascading standby(1拖N的模式)

    在Oracle11.2.0.2版本后,dataguard支持级联模式传输日志,即日志传输可以从A到B,B到C,B到D,等等,无穷无尽 cascading standby可以分担主库传输日志到多个备库的 ...

  7. Spring Boot 简单入门

    添加相关依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http ...

  8. Ubuntu18.04安装Virtualenv虚拟环境

    在Ubuntu18.04安装Virtualenv虚拟环境 [实验环境]: 在这台电脑上已经安装了python3 [安装参考] 1.查看是否已安装virtualenv virtualenv --vers ...

  9. git best practice

    1. https://www.atlassian.com/git/tutorials/learn-git-with-bitbucket-cloud (atlassian家的git) 2. https: ...

  10. select获取下拉框的值 下拉框默认选中

    本文主要介绍select下拉框的相关方法. 1.通过id获取下拉框的value和文本值 例如:  <select class="form-control" id=" ...