素數,又称質數,一個大於1的自然数中,除了1和此整数自身外,沒法被其他自然数整除的数;即是只有兩個正因数(1和自己)的自然数。
比1大但不是素数的数称之为合数又稱合成數,而1和0既非素数也非合数。素数的属性称为素性,素数在数论中有着非常重要的地位。
關於素数
素数是无穷多的,对这个论断,现在所已知的最古老的检验方法是欧几里德在他的几何原本中提出来的。他的检验方法可以简单地总结如下:
取有限个数的素数,因为要做自变量我们假设全部的素数都存在,将这些素数相乘然后加1,得到的数是不会被这些素数中的任何一个整除的,因为无论除哪个总会余1。因此这个数要么本身就是个素数,要么存在不在这个有限集合内的约数。因此我们开始用的集合不包含所有的素数。
别的数学家也给出了他们自己的证明。歐拉證明了全部素数的倒数和发散到无穷的。恩斯特·库默的证明尤其简洁,Furstenberg用一般拓扑证明。
尽管整个素数是无穷的,仍然有人会问“100000以下有多少个素数?”,“一个随机的100位数多大可能是素数?”。素数定理可以回答此问题。
素数的數目寻找在给定限度内的素数排列,埃拉托斯特尼筛法法是个很好的方法。然而在实际中,我们往往是想知道一个给定数是否是素数,而不是生成一个素数排列。进而,知道答案是很高的概率就是已经很满意的了,用素性测试迅速地检查一个给定数(例如,有几千位数的长度)是否是素数是可能的。典型的方法是随机选取一个数,然后围绕着这个数和可能的素数N检查一些方程式。重複這個過程幾次後,它宣布这个数是明显的合数或者可能是素数。这种方法是不完美的:對某些测试而言,例如費馬測試,不论选取了多少随机数都有可能将一些合数判断成可能的素数,这就引出了另一种数伪素数。而像米勒-拉賓測試,雖然只要選取夠多數字來檢驗方程式,就可以保證其檢驗出的質數性是正確的,但這個保證門檻的數量太過龐大,甚至比試除法所需的

還要多,在有限時間內運行起來只能知道答案正確的機率很高,不能保證一定正確。
目前最大的已知素数是2 - 1就会是一个素数,这在p = 3,p = 5,p = 7都是正确的,但是p = 11时

}-就不是素数了。
寻找素数
6n + 0……偶數(2的倍數)。
6n + 1……可能為質數?
6n + 2……偶數(2的倍數)。
6n + 3……3的倍數。
6n + 4……偶數(2的倍數)。
6n + 5……可能為質數?
那只要算 6n + 1 與 6n + 5 是否為質數就好了。 這樣,搜尋範圍立刻少掉原本的2/3, 也比單單排除的偶數還少了1/2。
欲求出小於x的所有質數……
根據質數分布特性可以用
6n + 0……偶數(2的倍數)。
6n + 1……可能為質數?
6n + 2……偶數(2的倍數)。
6n + 3……3的倍數。
6n + 4……偶數(2的倍數)。
6n + 5……可能為質數?
n為大於0, 小於((x 的平方根) /6)的正整數
所以,如果預先排除了 2 與 3 的話……
質數算法检查一个正整数N是否为素数,最简单的方法就是试除法,将该数N用小于等于

的所有素数去试除,若均无法整除,则N为素数。
2002年,印度人 M. Agrawal 、N. Kayal 以及 N. Saxena 提出了 AKS 質數檢驗演算法,證明了可以在多項式時間內檢驗是否為質數。
检验素数
哥德巴赫猜想:是否每個大於2的雙數均可寫成兩個質數之和?
孪生素数猜想:孪生素数就是差为2的素数对,例如11和13。是否存在无穷多的孪生素数?
斐波那契数列是否存在无穷多的素数?
是否存在无穷多梅森素数?
在n + 1的素数?
黎曼猜想
未解之谜
素数近来被利用在密码学上,所谓的公钥就是将想要传递的信息在编码时加入素数,编码之后传送给收信人,任何人收到此信息后,若没有此收信人所拥有的密钥,则解密的过程中(实为寻找素数的过程),将会因为找素数的过程(分解质因数)过久,使即使取得信息也會無意義。
素数的应用
素網