为什么质数检验到 N的开方 就可以结束了

以为所有N的除数都是以根号N为轴对称的。

例如16的开方为4;

16%1 == 0

则1 与 16 都是16的除数。

16%2 == 0

则2 与 8 都是16的除数。

16%4 ==0

则4 为16 的除数。

如果继续查找,找到 8

则已经添加。

所以判断一个数为质数与否的复杂度为O(根号N)

时间: 2024-11-09 08:43:26

为什么质数检验到 N的开方 就可以结束了的相关文章

Miller_Rabin大质数检验

质数检验有不少算法,一般使用的质数检验复杂度是\(O(\sqrt{n})\): 又如线性筛可以在\(O(n)\)的时间内求出所有1~n的质数 但是,当n非常大,连\(O(\sqrt{n})\)的复杂度也难以接受时,上述算法便不能满足要求 这篇blog记录了一些关于Miller_Rabin算法的内容 大家都知道的著名的费马小定理: \[a^{p-1}\equiv1\pmod p\] 其中\(a,p\)互质 我们猜想,任意选取\(a\),如果一个数\(p\)满足以上式子,那么它就很有可能是一个质数

【Python】05、python程序结构控制语句

一.程序结构 程序结构:语句和表达式按照什么样的顺序执行 所有语言无非就三种程序结构:        顺序:默认结构 语句从上到下依次一行一行的执行,        分支:选择一个分支执行,永远最多只执行一个分支        循环: 二.分支结构语句 1.Python的比较操作 所有的Python对象都支持比较操作,可用于测试相等性.相对大小等 如果是复合对象,Python会检查其所有部分,包括自动遍历各级嵌套对象,直到可以得出最终结果 测试操作符: " =="操作符测试值的相等性

质数筛选方法(埃拉托斯特尼筛法)

今天刷题刷了这么一道题, The sum of the primes below 10 is 2 + 3 + 5 + 7 = 17. Find the sum of all the primes below two million. 大概意思是10以内的质数加法和为 2 + 3 + 5 + 7 = 17,接着求2000000以内质数加法的和. 分析:要求2000000内质数的和,首先得把2000000内的质数表示出来,我用了上篇博客的方法,呵呵,半天没跑出来,这就说明方法不对,上网搜了搜,发现埃

(笔试题)质数因子Prime Factor

题目: Given any positive integer N, you are supposed to find all of its prime factors, and write them in the format N = p1^k1 * p2^k2 *...*pm^km. 输入描述: Each input file contains one test case which gives a positive integer N in the range of long int. 输出

从判断质数说起

从判断质数说起 以下定义能帮您更好理解本文: 0. 本文没有具体提到的数均为正整数(包括因数等) 1. 质数=素数=prime:除1与它本身,没有其他因数. 2. 开方=开平方=sqrt=square root 3. 本文如果没有明确说明,需要判断的质数的变量名均为n 第一章:朴素判断法 1.1 定义判断法 让我们来回顾下质数的定义 除1与它本身,没有其他因数的数,叫做质数 那么,我们就得出了定义判断法: i循环[2,n-1],判断是否存在i,使得n能被i整除. 显然,这是一个正确的算法,时间复

经典算法学习之回溯法

回溯法的应用范围:只要能把待求解的问题分成不太多的步骤,每个步骤又只有不太多的选择就可以考虑使用回溯法. 若用回溯法求问题的所有解时,要回溯到根,且根结点的所有可行的子树都要已被搜索遍才结束. 而若使用回溯法求任一个解时,只要搜索到问题的一个解就可以结束. 回溯法将问题的候选解按照某一顺序逐一枚举和检验.当发现当前候选解不可能是解时,就选择下一个候选解,若当前候选解符合要求,且还未达到求解的规模,则继续扩展当前候 选解的规模,如果候选解已经满足了所有要求,并且也达到了问题的规模,那么该候选解就是

POJ3126 Prime Path bfs, 水题 难度:0

题目 http://poj.org/problem?id=3126 题意 多组数据,每组数据有一个起点四位数s, 要变为终点四位数e, 此处s和e都是大于1000的质数,现在要找一个最短的路径把s变为e,每步可以做如下操作,把当前的s中的四位数上的某一位改变,比如1009可以变为2009,1008,1309,1049,然后检验结果是否为大于1000的质数,如果是,那就可以把s变为这个数. 思路 质数明显需要先处理出来,然后采用bfs获取结果即可. 感想 下次需要先计算空间复杂度, 1e8的空间复

Miller-rabin判素数

用Miller-rabin判素数之前,先要知道一个叫费马小定理的东西. 费马小定理:如果p是质数,那么任意和p互质的数的p-1次方对p取模都等于一. 即:任意gcd(a,p)==1,那么a^(p-1)≡1(mod p) 既然我们用费马小定理又得到了一个新的质数的性质,那么我们就可以用这个性质来判定素数. 为了判定p是不是质数,我们随机检验一些a检验a^(p-1)mod p是否为1 但是这样判定一个素数并不是百分百正确的,有一些数不是素数,但依据费马小定理还是会判定成素数. 例如:p=561=3*

Visual Basic快捷教程——流程控制

美籍匈牙利数学家冯·诺依曼于1946年提出"程序存储,顺序执行"的观念,为现代计算机奠定了重要基础.这一观点认为:应该把程序本身当作数据来对待,程序和该程序处理的数据用同样的方式储存.电子计算机的数制宜采用二进制:计算机应该按照程序顺序执行.所以现在开发人员在编写的程序代码时,其实都隐含地认为计算机将来会一行一行按顺序来执行这些指令.但是在顺序执行的过程中,有时我们希望计算机根据条件判断来选择性地执行(或者不执行)一些代码--这时就需要用到选择结构(或称分支结构).另外一些时候,我们希