質數又稱素數。指在一個大於1的天然數中,除了1和此整數自身外,不能被其餘天然數整除的數。素數在數論中有着很重要的地位。比1大但不是素數的數稱爲合數。1和0既非素數也非合數。質數是與合數相對立的兩個概念,兩者構成了數論當中最基礎的定義之一。基於質數定義的基礎之上而創建的問題有不少世界級的難題,如哥德巴赫猜測等。算術基本定理證實每一個大於1的正整數均可以寫成素數的乘積,而且這種乘積的形式是惟一的。這個定理的重要一點是,將1排斥在素數集合之外。若是1被認爲是素數,那麼這些嚴格的闡述就不得不加上一些限制條件。 python
前幾天偶爾的有朋友問python怎麼判斷素數的方法,走網上查了查,總結了python腳本判斷一個數是否爲素數的幾種方法: 函數
#運用python的數學函數 spa
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#單行程序掃描素數
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