使用Python判斷質(zhì)數(shù)(素數(shù))的簡單方法講解
質(zhì)數(shù)又稱素數(shù)。指在一個大于1的自然數(shù)中,除了1和此整數(shù)自身外,不能被其他自然數(shù)整除的數(shù)。素數(shù)在數(shù)論中有著很重要的地位。比1大但不是素數(shù)的數(shù)稱為合數(shù)。1和0既非素數(shù)也非合數(shù)。質(zhì)數(shù)是與合數(shù)相對立的兩個概念,二者構(gòu)成了數(shù)論當(dāng)中最基礎(chǔ)的定義之一?;谫|(zhì)數(shù)定義的基礎(chǔ)之上而建立的問題有很多世界級的難題,如哥德巴赫猜想等。算術(shù)基本定理證明每個大于1的正整數(shù)都可以寫成素數(shù)的乘積,并且這種乘積的形式是唯一的。這個定理的重要一點(diǎn)是,將1排斥在素數(shù)集合以外。如果1被認(rèn)為是素數(shù),那么這些嚴(yán)格的闡述就不得不加上一些限制條件。 前幾天偶爾的有朋友問python怎么判斷素數(shù)的方法,走網(wǎng)上查了查,總結(jié)了python腳本判斷一個數(shù)是否為素數(shù)的幾種方法:
1.運(yùn)用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
2.單行程序掃描素數(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)] ]
運(yùn)用python的itertools模塊
from itertools import count def isPrime(n): www.dbjr.com.cn if n <= 1: return False for i in count(2): if i * i > n: return True if n % i == 0: return False
3.不使用模塊的兩種方法
方法1:
def isPrime(n): if n <= 1: return False i = 2 while i*i <= n: if n % i == 0: return False i += 1 return True
方法2:
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
eg:求出20001到40001之間的質(zhì)數(shù)(素數(shù))
既然只能被1或者自己整出,那說明只有2次余數(shù)為0的時候,代碼如下:
#!/usr/bin/python L1=[] for x in xrange(20001,40001): n = 0 for y in xrange(1,x+1): if x % y == 0: n = n + 1 if n == 2 : print x L1.append(x) print L1
結(jié)果如下:
20011 20021 20023 20029 20047 20051 20063 20071 20089 20101 20107 20113 20117 20123 20129 20143 20147 20149 20161 20173 ….
相關(guān)文章
Python數(shù)據(jù)結(jié)構(gòu)與算法中的棧詳解
這篇文章主要為大家詳細(xì)介紹了Python數(shù)據(jù)結(jié)構(gòu)與算法中的棧,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-03-03python抓取網(wǎng)頁圖片示例(python爬蟲)
這篇文章主要介紹了python抓取網(wǎng)頁圖片示例(python爬蟲),需要的朋友可以參考下2014-04-04Python下利用BeautifulSoup解析HTML的實(shí)現(xiàn)
這篇文章主要介紹了Python下利用BeautifulSoup解析HTML的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01python 使用turtule繪制遞歸圖形(螺旋、二叉樹、謝爾賓斯基三角形)
這篇文章主要介紹了python 使用turtule繪制遞歸圖形(螺旋、二叉樹、謝爾賓斯基三角形) ,需要的朋友可以參考下2019-05-05Python利用解析JSON實(shí)現(xiàn)主機(jī)管理
JSON 是一種獨(dú)立于編程語言的數(shù)據(jù)格式,因此在不同的編程語言中都有對應(yīng)的解析器和生成器,本文主要介紹了Python如何通過解析JSON實(shí)現(xiàn)主機(jī)管理,感興趣的小伙伴可以了解一下2023-12-12使用Python為Excel文件添加預(yù)設(shè)和自定義文檔屬性
向Excel文件添加文檔屬性是專業(yè)地組織和管理電子表格數(shù)據(jù)的關(guān)鍵步驟,這些屬性,如標(biāo)題、作者、主題和關(guān)鍵詞,增強(qiáng)了文件的元數(shù)據(jù),使得在大型數(shù)據(jù)庫或文件系統(tǒng)中跟蹤變得更加容易,本文將介紹如何使用Python高效地為Excel文件添加文檔屬性,需要的朋友可以參考下2024-05-05