当前位置:首页 > 经验 >

素数与质数区别(素数和质数的区别并举例?)

来源:原点资讯(www.yd166.com)时间:2023-06-02 05:51:23作者:YD166手机阅读>>

使用试除法,将37除以m = 2, 3, 4, 5, 6,没有一个数能整除37,因此37为素数。此一程序若能知道直至

素数与质数区别,素数和质数的区别并举例?(9)

的所有素数列表,因为试除法只检查m为素数的状况,所以会更有效率。例如,为检查37是否为素数,只有3个相除是必要的(m = 2, 3, 5),因为4与6为合数。

作为一个简单的方法,试除法在测试大整数时很快地会变得不切实际,因为可能的约数数量会随着n的增加而迅速增加。依据下文所述之素数定理,小于

素数与质数区别,素数和质数的区别并举例?(10)

的素数之数量约为

素数与质数区别,素数和质数的区别并举例?(11)

,因此使用试除法测试n是否为素数时,大约会需要用到这么多的数字。对n = 1020,此一数值约为4.5亿,对许多实际应用而言都太过庞大。

筛法

一个能给出某个数值以下的所有素数之算法,称之为素数筛法,可用于只使用素数的试除法内。最古老的一个例子为埃拉托斯特尼筛法(见上文),至今仍最常被使用。阿特金筛法为另外一例。在电脑出现之前,筛法曾被用来给出107以下的素数列表。

测试证明

现代测试一般的数字n是否为素数的方法可分成两个主要类型,随机(或“蒙特卡洛”)与确定性算法。确定性算法可肯定辨别一个数字是否为素数。例如,试除法即是个确定性算法,因为若正确执行,该方法总是可以辨别一个素数为素数,一个合数为合数。随机算法一般比较快,但无法完全证明一个数是否为素数。这类测试依靠部分随机的方法来测试一个给定的数字。例如,一测试在应用于素数时总是会通过,但在应用于合数时通过的概率为p。若重复这个测试n次,且每次都通过,则该数为合数的概率为1/(1-p)n,会随着测试次数呈指数下滑,因此可越来越确信(虽然总是无法完全确信)该数为素数。另一方面,若测试曾失败过,则可知该数为合数。

随机测试的一个特别简单的例子为费马素数判定法,使用到对任何整数a,np≡n (mod p),其中p为素数的这个事实(费马小定理)。若想要测试一个数字b是否为素数,则可随机选择n来计算nb (mod b)的值。这个测试的缺点在于,有些合数(卡迈克尔数)即使不是素数,也会符合费马恒等式,因此这个测试无法辨别素数与卡迈克尔数,最小的三个卡迈克尔数为561,1105,1729。卡迈克尔数比素数还少上许多,所以这个测试在实际应用上还是有用的。费马素数判定法更强大的延伸方法,包括贝利-PSW、米勒-拉宾与Solovay-Strassen素数测试,都保证至少在应用于合数时,有部分时候会失败。

确定性算法不会将合数错误判定为素数。在实务上,最快的此类方法为椭圆曲线素数证明。其运算时间是透过实务分析出来的,不像最新的AKS素数测试,有已被严格证明出来的复杂度。确定性算法通常较随机算法来得慢,所以一般会先使用随机算法,再采用较费时的确定性算法。

下面表格列出一些素数测试。运算时间以被测试的数字n来表示,并对随机算法,以k表示其测试次数。此外,ε是指一任意小的正数,log是指一无特定基数的对数。大O符号表示,像是在椭圆曲线素数证明里,所需之运算时间最长为一常数(与n无关,但会与ε有关)乘于log5 ε(n)。

测试

发明于

类型

运算时间

注记

AKS素数测试

2002

确定性

O(log6 ε(n))

椭圆曲线素数证明

1977

确定性

O(log5 ε(n))“实务分析”

贝利-PSW素数测试

1980

随机

O(log3 n)

无已知反例

米勒-拉宾素数判定法

1980

随机

O(k · log2 ε (n))

错误概率4−k

Solovay-Strassen素数

1977

随机

O(k · log3 n)

错误概率2−k

费马素数判定法

随机

O(k · log2 ε (n))

遇到卡迈克尔数时会失败

算法素数

除了前述可应用于任何自然数n之上的测试外,一些更有效率的素数测试适用于特定数字之上。例如,卢卡斯素数测试需要知道n − 1的素因数,而卢卡斯-莱默素数测试则需要以n 1的素因数作为输入。例如,这些测试可应用在检查

n! ± 1 = 1 × 2 × 3 × ... × n ± 1

是否为一素数。此类形式的素数称之为阶乘素数。其他具p 1或p-1之类形式的素数还包括索菲·热尔曼素数(具2p 1形式的素数,其中p为素数)、素数阶乘素数、费马素数与梅森素数(具2p − 1形式的素数,其中p为素数)。卢卡斯-雷默素数测试对这类形式的数特别地快。这也是为何自电脑出现以来,最大已知素数总会是梅森素数的原因。

费马素数具下列形式

Fk = 22k 1,

其中,k为任意自然数。费马素数以皮埃尔·德·费马为名,他猜想此类数字Fk均为素数。费马认为Fk均为素数的理由为此串列的前5个数字(3、5、17、257及65537)为素数。不过,F5却为合数,且直至2015年发现的其他费马数字也全都是合数。一个正n边形可用尺规作图,当且仅当

n = 2i × m

其中,m为任意个不同费马素数之乘积,及i为任一自然数,包括0。

下列表格给出各种形式的最大已知素数。有些素数使用分散式计算找到。2009年,互联网梅森素数大搜索因为第一个发现具至少1,000万个数位的素数,而获得10万美元的奖金。电子前哨基金会亦为具至少1亿个数位及10亿个数位的素数分别提供15万美元及25万美元的奖金。

类型

素数

数位

日期

发现者

梅森素数

277232917 − 1

23,249,425

2017年12月26日

互联网梅森素数大搜索

非梅森素数(普罗斯数)

19,249×213,018,586 1

3,918,990

2007年3月26日

十七或者*

阶乘素数

150209! 1

712,355

2011年10月

PrimeGrid

素数阶乘素数

1098133# - 1

476,311

2012年3月

PrimeGrid

孪生素数s

3756801695685×2666669 ± 1

200,700

2011年12月

PrimeGrid

整数分解

给定一合数n,给出一个(或全部)素因数的工作称之为n的约数分解。椭圆曲线分解是一个依靠椭圆曲线上的运算来分解素因数的算法。

五、素数应用

长期以来,数论,尤其是对素数的研究,一般都会被认为是典型的纯数学,除了求知的趣味之外,没有其他应用。特别是,一些数论学家,如英国数学家戈弗雷·哈罗德·哈代即对其工作绝对不会有任何在军事上的重大性感到自豪。然而,此一观点在1970年代时遭到粉碎,当素数被公开宣布可以作为产生公钥加密算法的基础之时。素数现在也被用在杂凑表与伪乱数产生器里。

旋转机被设计成在每个转片上有不同数目的销,在每个转片上的销的数量都会是素数,亦或是会与其他转片上的销的数量互素。这有助于在重复所有的组合之前,让所有转片的可能组合都能出现过一次。

国际标准书号的最后一码为校验码,其算法使用到了11是个素数的这个事实。

在汽车变速箱齿轮的设计上,相邻的两个大小齿轮齿数最好设计成素数,以增加两齿轮内两个相同的齿相遇啮合次数的最小公倍数,可增强耐用度减少故障。

在害虫的生物生长周期与*虫剂使用之间的关系上,*虫剂的素数次数的使用也得到了证明。实验表明,素数次数地使用*虫剂是最合理的:都是使用在害虫繁殖的高潮期,而且害虫很难产生抗药性。

以素数形式无规律变化的导弹和鱼雷可以使敌人不易拦截。

素数运算

“模运算”使用下列数字修改了一般的运算

素数与质数区别,素数和质数的区别并举例?(12)

栏目热文

1-20素数是什么(1-20内所有素数)

1-20素数是什么(1-20内所有素数)

这些数字有什么共同点?都是素数!如果你只是模糊地记得你的小学数学课,你可能不记得什么是质数。很遗憾,因为如果您试图保护您...

2023-06-02 06:00:11查看全文 >>

c语言判断一个数是否为素数(c语言怎么判断一个数是不是素数)

c语言判断一个数是否为素数(c语言怎么判断一个数是不是素数)

~输入一个整数,判断是否为素数分析:素数只能被1和自身整除的数。判断一个数是不是素数,是用2和这个数之间的所有的数来求余...

2023-06-02 06:06:24查看全文 >>

质数表10000以内(质数表100以内多少个)

质数表10000以内(质数表100以内多少个)

质数表及一些笔记,...

2023-06-02 06:19:06查看全文 >>

素数判断最快方法(判断是不是素数的方法)

素数判断最快方法(判断是不是素数的方法)

今天这篇是算法与数据结构专题的第23篇文章,我们继续数论相关的算法,来看看大名鼎鼎的埃式筛法。我们都知道在数学领域,素数...

2023-06-02 05:46:14查看全文 >>

什么叫做素数(什么叫有理数和无理数)

什么叫做素数(什么叫有理数和无理数)

这些概念是孩子们容易混淆(收藏好),多去理解概念的定义,多做相关练习,才不会忘记它们的存在您的关注才是老师的动力这样才会...

2023-06-02 06:24:03查看全文 >>

最小的素数是1还是2(为什么最小的素数是2)

最小的素数是1还是2(为什么最小的素数是2)

人们在研究事物时,总喜欢去探索本源,而这通常就需要对事物进行分解,比如物理学就致力于寻找构成物质的基本粒子。数学家们也一...

2023-06-02 05:49:29查看全文 >>

幼儿园中班数学入门怎么教(幼儿园数学怎么教简单易懂)

幼儿园中班数学入门怎么教(幼儿园数学怎么教简单易懂)

第一步:会数数要求:1、 能熟练地从“1”开始往下数。2、 能熟练地从中间的某个数开始数。例如:老师说:从4开始数;从 ...

2023-06-02 05:59:54查看全文 >>

幼儿园中班数学课怎么上(幼儿园中班数学第一课怎么上)

幼儿园中班数学课怎么上(幼儿园中班数学第一课怎么上)

活动目标:  1、尝试根据物体的不同特征进行数数。  2、锻炼仔细观察物体的能力。  重点:锻炼幼儿仔细观察物体的能力。...

2023-06-02 05:51:13查看全文 >>

幼儿园教数学的方法(幼儿园数学题目)

幼儿园教数学的方法(幼儿园数学题目)

目前,在整个幼儿教育阶段,国家提倡的是“去小学化”。去小学化,并不意味着拼音、数学、英语都不用教、不用学,而是结合幼儿的...

2023-06-02 06:19:40查看全文 >>

幼儿园中班要怎样上好数学课(幼儿园如何上好一节数学课的技巧)

幼儿园中班要怎样上好数学课(幼儿园如何上好一节数学课的技巧)

数学课不知道怎么上,公开课教案设计想到头疼?放轻松,小编给您准备了超详细的参考教案,幼儿教师们快收藏起来吧!​大班数学教...

2023-06-02 06:24:28查看全文 >>

文档排行