素數(Prime Number),亦称质数

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

素數(Prime Number),亦称质数,指在一個大於1的自然数中,除了1和此整数自身外,無法被其他自然数整除的数。換句話說,只有兩個正因数1和自己)的自然数即為素數。

比1大但不是素数的数称为合数。1和0既非素数也非合数。素数在数论中有着很重要的地位。

目录

[隐藏]

[编辑] 關於素数

最小的素数是2,也是素数中唯一的偶數(雙數);其他素数都是奇數(單數)。素數有無限多個,所以不存在最大的素數。

围绕著素数存在很多数学问题、数学猜想数学定理。著名的有孪生素数猜想哥德巴赫猜想

素数序列的开头是这样:

23571113171923293137
414347535961677173798389
97101103107109113 ( OEIS:A000040)

素数集合有时表示成粗体/mathbb{P}

抽象代数的一个分支-环论中,素元素有特殊的含义,在这个含义下,任何素数的加法的逆转也是素数。换句话说,将整数Z的集合看成是一个,-Z是一个素元素。但是在数学领域内,提到素数时通常指正的素数。

算术基本定理證明每个大于1的正整数都可以写成素数的乘积,并且这种乘积的形式是唯一的。因此素数也被称为自然数的“建筑的基石”。例如:

23244 = 2^2 /times 3 /times 13 /times 149

關於分解的詳細方法,可見於整數分解條目。

这个定理的重要一点是,将1排斥在素数集合以外。如果1被认为是素数,那么这些严格的阐述就不得不加上一些限制条件。

0由於可以被任何數整除(因餘數一定等於0),所以它不符合素數的定義。

[编辑] 素数的數目

素數有無窮多個。現在已知最早的證明方法是歐幾里得在他的《幾何原本》中提出的。該證明方法如下:

假設素數有限。把所有這些有限的素數相乘以後加1,可以得到一個數。這個數無法被那些有限的素數裡的任何一個整除:因爲無論被哪一個素數除,總有餘數1。

如果該數為素數,則根據假設,它不在那些假設的素數集合中。 如果該數為合數,因為任何一個合數都可以分解為幾個素數的積;而一開始假設的那些素數都不能整除該合數,所以該合數分解得到的素因數肯定不在假設的素數集合中。 因此無論該數是素數還是合數,都意味著在假設的有限個素數之外還存在着其他素數。 對任何有限個素數的集合來說,用上述的方法永遠可以得到有一個素數不在假設的素數集合中的結論。 所以原先的假設不成立。也就是說,素數並非有限,而是有無窮多個。

其他數學家也給出了他們自己的證明。歐拉證明了全部素數的倒數之和是發散的。恩斯特·庫默的證明更爲簡潔。Hillel Furstenberg則用拓撲學加以了證明。

尽管整个素数是无穷的,仍然有人会问“100000以下有多少个素数?”,“一个随机的100位数多大可能是素数?”。素数定理可以回答此问题。

[编辑] 寻找素数

寻找在给定限度内的素数排列,埃拉托斯特尼筛法是个很好的方法。然而在实际中,我们往往是想知道一个给定数是否是素数,而不是生成一个素数排列。进而,知道是素数的概率有多大就是可以了。用素性测试迅速地检查一个给定数(例如,有几千位数的长度)是否是素数是可能的。典型的方法是随机选取一个数,然后围绕着这个数和可能的素数N检查一些方程式。重複這個過程幾次後,它可以基本确定这个数是明显的合数或者可能是素数。这种方法是不完美的:對某些测试而言,例如費馬測試,不论选取了多少随机数都有可能将一些合数判断成可能的素数,这就引出了伪素数。而像米勒-拉賓測試,雖然只要選取夠多的數字來檢驗方程式,就可以保證其檢驗出的素數性是正確的;但這個檢驗的數量太過龐大,甚至比試除法所需的/sqrt{N}還要多,在有限的時間內只能知道答案正確的機率很高,不能保證一定正確。

数学家一直努力找寻产生素数的公式,利用一条定理,可以正确产生所有的素数(参见素数公式)。历史上有许多试验的例子:17世纪法国数学家梅森(Mersenne)在他的一个著作当中讨论了这样一种我们现在称之为梅森素数的素数,Mp=2p − 1,本来以为只要p是一个素数,n = 2p − 1就会是一个素数,这在p = 3p = 5p = 7都是正确的,但是p = 112^{11}-1=2047=23/times 89就不是素数了。目前最大的已知素数是梅森素数243112609 − 1(此数字位长度是12978189),它是在2008年8月23日GIMPS发现。这组织也在2008年9月6日发现了目前所知第二大的已知素数237156667 − 1(此数字位长度是11185272)。

[编辑] 素數算法

  • 欲求出小於x的所有素数参见素数公式

[编辑] 检验素数

检查一个正整数N是否为素数,最简单的方法就是试除法,将该数N用小于等于/sqrt{N}的所有素数去试除,若均无法整除,则N为素数。

2002年,印度人M. Agrawal、N. Kayal以及N. Saxena提出了AKS素數檢驗演算法,證明了可以在多項式時間內檢驗是否為素數。

[编辑] 已经证明的定理

  • 在一个数和它的2倍之间必存在一个素数。
  • 存在任意长度的素数等差数列。(格林和陶哲轩2004年
  • 一個偶數可以寫成兩個數字之和,其中每一個數字都最多祇有9個質因數。(挪威數學家布朗,1920年)
  • 一個偶數必定可以寫成一個質數加上一個合成數。(瑞尼,1948年
  • 一個偶數必定可以寫成一個質數加上一個由5個因子所組成的合成數。後來,有人簡稱這結果為 (1 + 5) (中國潘承洞1968年)

[编辑] 未解之谜

  • 哥德巴赫猜想:是否每個大於2的偶數都可寫成兩個素數之和?
  • 孪生素数猜想:孪生素数就是差为2的素数对,例如11和13。是否存在无穷多的孪生素数?
  • 斐波那契数列内是否存在无穷多的素数?
  • 是否存在无穷多的梅森素数
  • n2(n + 1)2之间是否每隔n就有一个素数?
  • 是否存在无穷个形式如n2 + 1的素数?
  • 黎曼猜想

[编辑] 素数的应用

素数近来被利用在密码学上,所谓的公钥就是将想要传递的信息在编码时加入素数,编码之后传送给收信人,任何人收到此信息后,若没有此收信人所拥有的密钥,则解密的过程中(实为寻找素数的过程),将会因为找素数的过程(分解质因数)过久,使即使取得信息也會無意義。

汽車變速箱齒輪的設計上,相鄰的兩個大小齒輪齒數最好設計成素數,以增加兩齒輪內兩個相同的齒相遇嚙合次數的最小公倍數,可增強耐用度減少故障。

在害蟲的生物生長周期與殺蟲劑使用之間的關係上,殺蟲劑的素數次數的使用也得到了證明。實驗表明,素數次數地使用殺蟲劑是最合理的:都是使用在害蟲繁殖的高潮期,而且害蟲很難産生抗藥性。

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

[编辑] 高斯素数

高斯素数是把素数在复数范围内的扩展。与实数中的整数定义相似,高斯素数是不能表现为1、i或本身除外的两个复整数的乘积的复整数,例如1+2i。
有的数在实数范围内是素数,但在复数范围内不是素数,例如13=(3-2i)(3+2i)。

素数Prime sieve 阅读详情

相关推荐

输出各个位数的超级素数

本程序是输出各个位数的超级素数,如3位数的超级素数:377

质数(Prime_Number)

一、定义 质数(prime number)又称素数,有无限个。一个大于1的自然数,除了1和它本身外,不能被其他自然数整除,换句话说就是该数除了1和它本身以外不再有其他的因数;否则称为合数。 二、相关定理 在一个大于1的数a和它2倍之间(即区间(a, 2a]中)必存在至少一个素数。 存在任意长度的素数等差数列。(格林和陶哲轩,2004年) 一个偶数可以写成两个数字之和,其中每一个数字都最多...

无限迭代中...... 5088

素数求解的N种境界

素数又称质数(prime number),一个大于1的自然数,除了1和它本身外,不能被其他自然数整除的数被称为素数。例题:请编写代码找出1——100之间的素数,并打印在屏幕上。可以看出筛选法和试除法其实有着本质上的区别。试除法是判断每一个数是不是素数来达到目的,而筛选法却是将不是素数的数全部去除,然后得到余下的数来达到目的。当把找素数的范围提到1 ~ 10000以内,筛选法的执行次数远小于试除法的执行次数。所以可以看出,求素数的范围越大筛选法的优越性就越高。!!

m0_66769266的博客 1352

质数判断与区间质数筛选

质数核心判定逻辑:大于 1,仅能被 1 和自身整除;基础场景使用isPrime()平方根优化判断;区间批量筛选可使用循环调用判断方法;超大范围质数推荐埃氏筛法提升运行效率。

Y1753840953的博客 182

何为质数Prime Number)?

质数,又称素数,洋文名是Primer Number

Experience set us apart! 2468

matlab如何用prime质数,质数(Prime_Number)

一、定义质数(prime number)又称素数,有无限个。一个大于1的自然数,除了1和它本身外,不能被其他自然数整除,换句话说就是该数除了1和它本身以外不再有其他的因数;否则称为合数。二、相关定理在一个大于1的数a和它2倍之间(即区间(a, 2a]中)必存在至少一个素数。存在任意长度的素数等差数列。(格林和陶哲轩,2004年)一个偶数可以写成两个数字之和,其中每一个数字都最多只有9个质因数。(挪...

weixin_39825854的博客 3459

理解数学概念——素数(质数)(prime)

理解素数

ComputerInBook的专栏 4569

P1217 回文质数 Prime Palindromes【素数

因为151既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以151是回文质数。写一个程序来找出范围ab5≤ab≤100000000(一亿)间的所有回文质数

海岛Blog 1331

回文质数 Prime Palindromes

151既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以151是回文质数。写一个程序来找出范围ab5≤ab≤100000000(一亿)间的所有回文质数

weixin_52521191的博客 1058

2Prime Number - 区间内素数(质数)的个数

问题如下: 判断101-200之间有多少个素数,并输出所有素数素数/质数的定义:只能被1或本身整除的数 所以一个数除以除了1与本身的数之外的数能除尽,则不是质数,思考了一下质数有这些:3 ,5 ,7,11,131 ...... 思路: 在求区间素数个数时,对某一个未知类型的数,可以把它对2到它本身(1不用看了吧)的每一个数取模,模的尽则不为素数; 稍加思索,假设有c = a*b ...

Lazyafei's Blog 1531

[USACO1.5] 回文质数 Prime Palindromes

[USACO1.5] 回文质数 Prime Palindromes

yuyanjingtao的博客 2207

c++ 判断是否为质数(素数 prime number)

#include <iostream> int main() { int n; std::cin >> n; if (n <= 1) std::cout << "not a prime number" << std::endl; else { int i; for ( i = 2; i <= sqrt(n); i++) { if (0 == n % i) break; } if ( i > sq

lishuangzhi的博客 1982

质数Prime Number 素数)的方法——厄拉多塞筛法

质数又称素数。指在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数。换句话说,只有两个正因数(1和自己)的自然数即为素数。比1大但不是素数的数称为合数。1和0既非素数也非合数。合数是由若干个质数相乘而得到的。所以,质数是合数的基础,没有质数就没有合数。 【1】一般方法 素数是除了1和它本身之外再不能被其他数整除的自然数。由于找不到一个通项公式来表示所有的素数,所以对

技术荆棘路 2万+

回文质数 Prime

因为151既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以151是回文质数。写一个程序来找出范围ab5≤ab≤100000000(一亿)间的所有回文质数

Pretty Boy Fox的博客 765

素数Prime

质数素数 除了1和它本身以外没有其他的因子的数合数 除了1和它本身以外,还有其他的因子 1既不是质数,也不是合数 a/b=k...r a=k*b+r r=a%b k=a/b 素数 (对于介于1到n的任意的一个数a n%a!=0 都除不尽) 1<a<n n%a!=0 余数不为零 除不尽 n%a!=0 余数为零 能整除 n%a==0 如果一个数n除了1...

让, 879

[USACO1.5]回文质数 Prime Palindromes(判断素数回文数)

判断回文数 函数: //判断回文数的函数 bool pd_h(int x) { int y=x,num=0;//int y=x,防止x被改变 while (y!=0) { num=num*10+y%10;//上一次数字的记录进位再加上下一位数 y/=10; } if (num==x) return 1; else r...

一直努力 1324

质数素数算法及其优化

Prime number),又称,指在大于的中,除了1和该数自身外,无法被其他自然数的数(也可定义为只有1与该数本身两个正因数的数)。大于1的自然数若不是素数,则称之为(也称为合成数)。例如,是个素数,因为其正约数只有1与5。7是个素数,因为其正约数只有1与7。而4则是个合数,因为除了1与4外,2也是其正约数。6也是个合数,因为除了1与6外,2与3也是其正约数。确立了素数于里的核心地位:任何大于1的均可被表示成一串唯一素数之乘积。为了确保该定理的唯一性,1被定义为不是素数,因为在。

qq_74722169的博客 1914

【题解】【洛谷P1217】【枚举】—— [USACO1.5] 回文质数 Prime Palindromes

平台为全国青少年提供最专业的编程教育服务,包括提供最新最详细的编程相关资讯、最专业的竞赛指导、最合理的课程规划等。本平台利用趣味性和互动性强的教学方式,旨在激发孩子们对编程的兴趣,培养他们的逻辑思维能力和创造力,让孩子们在轻松愉快的氛围中掌握编程知识,为未来科技人才的培养奠定坚实基础。考虑到回文质数分布得比较稀疏,可以先写一个程序,输出所有的回文质数,再进行打表。由于回文数比质数的分布更稀疏,所以枚举回文数的时间复杂度较小。既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以。

Pantheraonca的博客 1749
上一篇: C++类型转换
下一篇: 青蛙的约会 --解法
ssff1
博客等级 码龄21年 23粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值