使用Python判斷質(zhì)數(shù)(素?cái)?shù))的簡(jiǎn)單方法講解
質(zhì)數(shù)又稱素?cái)?shù)。指在一個(gè)大于1的自然數(shù)中,除了1和此整數(shù)自身外,不能被其他自然數(shù)整除的數(shù)。素?cái)?shù)在數(shù)論中有著很重要的地位。比1大但不是素?cái)?shù)的數(shù)稱為合數(shù)。1和0既非素?cái)?shù)也非合數(shù)。質(zhì)數(shù)是與合數(shù)相對(duì)立的兩個(gè)概念,二者構(gòu)成了數(shù)論當(dāng)中最基礎(chǔ)的定義之一?;谫|(zhì)數(shù)定義的基礎(chǔ)之上而建立的問(wèn)題有很多世界級(jí)的難題,如哥德巴赫猜想等。算術(shù)基本定理證明每個(gè)大于1的正整數(shù)都可以寫(xiě)成素?cái)?shù)的乘積,并且這種乘積的形式是唯一的。這個(gè)定理的重要一點(diǎn)是,將1排斥在素?cái)?shù)集合以外。如果1被認(rèn)為是素?cái)?shù),那么這些嚴(yán)格的闡述就不得不加上一些限制條件。 前幾天偶爾的有朋友問(wèn)python怎么判斷素?cái)?shù)的方法,走網(wǎng)上查了查,總結(jié)了python腳本判斷一個(gè)數(shù)是否為素?cái)?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.單行程序掃描素?cái)?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.dhdzp.com
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ù)(素?cái)?shù))
既然只能被1或者自己整出,那說(shuō)明只有2次余數(shù)為0的時(shí)候,代碼如下:
#!/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)文章
Django框架實(shí)現(xiàn)的分頁(yè)demo示例
這篇文章主要介紹了Django框架實(shí)現(xiàn)的分頁(yè)demo,結(jié)合實(shí)例形式分析了Django框架分頁(yè)的步驟、原理、相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下2019-05-05
python中strip(),lstrip(),rstrip()函數(shù)的使用講解
這篇文章主要介紹了python中strip(),lstrip(),rstrip()函數(shù)的使用講解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
Python實(shí)現(xiàn)奇數(shù)列與偶數(shù)列調(diào)換的方法詳解
這篇文章主要為大家詳細(xì)介紹了如何利用Python實(shí)現(xiàn)df的奇數(shù)列與偶數(shù)列調(diào)換位置,比如A列,B列,調(diào)換成B列,A列,感興趣的小伙伴可以了解一下2022-05-05
使用Python實(shí)現(xiàn)密碼與驗(yàn)證碼的MD5加密
在現(xiàn)代軟件開(kāi)發(fā)中,數(shù)據(jù)加密是一個(gè)非常重要的環(huán)節(jié),無(wú)論是用戶密碼、驗(yàn)證碼,還是其他敏感信息,加密都是保護(hù)數(shù)據(jù)安全的關(guān)鍵手段之一,本文將通過(guò)一個(gè)具體的例子,詳細(xì)講解如何使用 Python 實(shí)現(xiàn)密碼與驗(yàn)證碼的 MD5 加密2025-02-02
python基礎(chǔ)教程之對(duì)象和類的實(shí)際運(yùn)用
這篇文章主要介紹了python基礎(chǔ)教程之對(duì)象和類的實(shí)際運(yùn)用,本文講解對(duì)象和類的一方法技巧,例如屬性、內(nèi)置方法、self關(guān)鍵字的運(yùn)用等,需要的朋友可以參考下2014-08-08
Python數(shù)據(jù)結(jié)構(gòu)dict常用操作代碼實(shí)例
這篇文章主要介紹了Python數(shù)據(jù)結(jié)構(gòu)dict常用操作代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03
python爬蟲(chóng)獲取京東手機(jī)圖片的圖文教程
下面小編就為大家分享一篇python爬蟲(chóng)獲取京東手機(jī)圖片的圖文教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2017-12-12
Django模板繼承與模板的導(dǎo)入實(shí)例詳解
模板繼承主要是為了提高代碼重用,減輕開(kāi)發(fā)人員的工作量,下面這篇文章主要給大家介紹了關(guān)于Django模板繼承與模板導(dǎo)入的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-03-03

