質(zhì)數(shù)(primenumber)又稱素數(shù),有無限個。一個大于1的自然數(shù),除了1和它本身外,不能被其他自然數(shù)整除,換句話說就是該數(shù)除了1和它本身以外不再有其他的因數(shù);否則稱為合數(shù)。根據(jù)算術(shù)基本定理,每一個比1大的整數(shù),要么本身是一個質(zhì)數(shù),要么可以寫成一系列質(zhì)數(shù)的乘積。
質(zhì)數(shù)(primenumber)又稱素數(shù),有無限個。一個大于1的自然數(shù),除了1和它本身外,不能被其他自然數(shù)整除,換句話說就是該數(shù)除了1和它本身以外不再有其他的因數(shù);否則稱為合數(shù)。
根據(jù)算術(shù)基本定理,每一個比1大的整數(shù),要么本身是一個質(zhì)數(shù),要么可以寫成一系列質(zhì)數(shù)的乘積;而且如果不考慮這些質(zhì)數(shù)在乘積中的順序,那么寫出來的形式是唯一的。最小的質(zhì)數(shù)是2。
1)直觀判斷法
最直觀的方法,根據(jù)定義,因為質(zhì)數(shù)除了1和本身之外沒有其他約數(shù),所以判斷n是否為質(zhì)數(shù),根據(jù)定義直接判斷從2到n-1是否存在n的約數(shù)即可。
defisPrime(num):
foriinrange(num):
forjinrange(2,num):
ifi%j==0:break
else:returnTrue
2)直觀判斷法改進(jìn)
上述判斷方法,明顯存在效率極低的問題。對于每個數(shù)n,其實并不需要從2判斷到n-1,我們知道,一個數(shù)若可以進(jìn)行因數(shù)分解,那么分解時得到的兩個數(shù)一定是一個小于等于sqrt(n),一個大于等于sqrt(n),據(jù)此,上述代碼中并不需要遍歷到n-1,遍歷到sqrt(n)即可,因為若sqrt(n)左側(cè)找不到約數(shù),那么右側(cè)也一定找不到約數(shù)。
frommathimportsqrt
defisPrime(num):
foriinrange(num):
forjinrange(2,int(sqrt(num))):
ifi%j==0:
break
else:returnTrue
3)質(zhì)數(shù)規(guī)律判斷法
首先看一個關(guān)于質(zhì)數(shù)分布的規(guī)律:大于等于5的質(zhì)數(shù)一定和6的倍數(shù)相鄰。例如5和7,11和13,17和19等等;
證明:令x≥1,將大于等于5的自然數(shù)表示如下:
······6x-2,6x-1,6x,6x+1,6x+2,6x+3,6x+4,6x+5,6x+6,6x+7······
也就是
······2(3x-1),6x-1,6x,6x+1,2(3x+1),3(2x+1),2(3x+2),6x+5,6(x+1),6(x+1)+1······
可以看到,不在6的倍數(shù)兩側(cè),即6x兩側(cè)的數(shù)為6x+2,6x+3,6x+4,由于2(3x+1),3(2x+1),2(3x+2),所以它們一定不是素數(shù),再除去6x本身,顯然,素數(shù)要出現(xiàn)只可能出現(xiàn)在6x的相鄰兩側(cè)。這里要注意的一點是,在6的倍數(shù)相鄰兩側(cè)并不是一定就是質(zhì)數(shù)。
質(zhì)數(shù)是指在大于1的自然數(shù)中,除了1和它本身以外不再有其它因數(shù)的自然數(shù)。合數(shù)指自然數(shù)中除了能被1和本身整除外,還能被其它數(shù)(0除外)整除的數(shù)。...
0不是質(zhì)數(shù),也不是合數(shù)。0是介于-1和1之間的整數(shù),是偶數(shù),是最小的自然數(shù),也是有理數(shù)。0既不是正數(shù)也不是負(fù)數(shù),而是正數(shù)和負(fù)數(shù)的分界點。0的...
質(zhì)數(shù)的意思是素數(shù),除本身的絕對值外,不可能為大于1的整數(shù)除盡的數(shù)。比如1就是質(zhì)數(shù),因為它只能被1和它自身整除。2也是質(zhì)數(shù),因為它也是只能被1...
質(zhì)數(shù)是指在大于1的自然數(shù)中。例如:2、3、5、7、11...質(zhì)數(shù)具有許多獨特的性質(zhì):質(zhì)數(shù)p的約數(shù)只有兩個:1和p。初等數(shù)學(xué)基本定理:任一大于...
1既不是質(zhì)數(shù),也不是合數(shù)。質(zhì)數(shù)定義為在大于1的自然數(shù)中,除了1和它本身以外不再有其他因數(shù)。合數(shù)指自然數(shù)中除了能被1和本身整除外,還能被其他數(shù)...
1不是質(zhì)數(shù),因為除了1和本身外沒有其它因數(shù)。一個大于1的自然數(shù),除了1和它自身外,不能被其他自然數(shù)整除的數(shù)叫做質(zhì)數(shù);否則稱為合數(shù)。質(zhì)數(shù)的個數(shù)...
10以內(nèi)的質(zhì)數(shù)有4個,分別是:2、3、5、7。質(zhì)數(shù)的含義:如果一個大于1的正整數(shù),除了1和自身外沒有其他的約數(shù),我們就把這個正整數(shù)稱作質(zhì)數(shù)。...