【轉載】Python腳本判斷一個數是否爲素數的幾種方法

     質數又稱素數。指在一個大於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
相關文章
相關標籤/搜索