python判斷一個數(shù)是否為素數(shù)的兩種方法?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
成都創(chuàng)新互聯(lián)主要從事成都做網(wǎng)站、成都網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)永吉,10年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):13518219792
質(zhì)數(shù)(prime number)又稱素數(shù)。指在一個大于1的自然數(shù)中,除了1和此整數(shù)自身外,不能被其他自然數(shù)整除的數(shù)。素數(shù)在數(shù)論中有著很重要的地位。比1大但不是素數(shù)的數(shù)稱為合數(shù)。1和0既非素數(shù)也非合數(shù)。素數(shù)是與合數(shù)相對立的兩個概念,二者構(gòu)成了數(shù)論當(dāng)中最基礎(chǔ)的定義之一?;谫|(zhì)數(shù)定義的基礎(chǔ)之上而建立的問題有很多世界級的難題,如哥德巴赫猜想等。算術(shù)基本定理證明每個大于1的正整數(shù)都可以寫成素數(shù)的乘積,并且這種乘積的形式是唯一的。這個定理的重要一點是,將1排斥在素數(shù)集合以外。如果1被認(rèn)為是素數(shù),那么這些嚴(yán)格的闡述就不得不加上一些限制條件。
一個大于1的整數(shù),不是素數(shù)就是合數(shù);
任何一個合數(shù)都可以分解為幾個素數(shù)的乘積;
除了2,3,5以外,素數(shù)均以1,3,7,9為結(jié)尾;
素數(shù)有無窮多個;
兩個素數(shù)之間差值為1的僅有2和3,差值為3的僅有2和5;
兩個素數(shù)間差值為2的成為孿生素數(shù),如2和3,3和5;
孿生素數(shù)推測有無窮多對……
總結(jié)python腳本判斷一個數(shù)是否為素數(shù)的幾種方法:
運用python的數(shù)學(xué)函數(shù)
import math def isPrime(n): if n <= 1: return False for i in range(2, int(math.sqrt(n)) + 1): if n % i == 0: return False return True
單行程序掃描素數(shù)
from math import sqrt N = 100 [ p for p in range(2, N) if 0 not in [ p% d for d in range(2, int(sqrt(p))+1)] ]
運用python的itertools模塊
from itertools import count def isPrime(n): if n <= 1: return False for i in count(2): if i * i > n: return True if n % i == 0: return False
不使用模塊的兩種方法
方法一:
def isPrime(n): if n <= 1: return False i = 2 while i*i <= n: if n % i == 0: return False i += 1 return True
方法二:
def isPrime(n): if n <= 1: return False if n == 2: return True if n % 2 == 0: return False i = 3 while i * i <= n: if n % i == 0: return False i += 2 return True
看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。