python质数判断if isprime_使用Python判断质数(素数)的简单
這篇文章主要介紹了使用Python判斷質數(素數)的簡單方法講解,經常被用來做科學計算的Python處理這種小問題當然手到擒來^_-需要的朋友可以參考下
質數又稱素數。指在一個大于1的自然數中,除了1和此整數自身外,不能被其他自然數整除的數。素數在數論中有著很重要的地位。比1大但不是素數的數稱為合數。1和0既非素數也非合數。質數是與合數相對立的兩個概念,二者構成了數論當中最基礎的定義之一。基于質數定義的基礎之上而建立的問題有很多世界級的難題,如哥德巴赫猜想等。算術基本定理證明每個大于1的正整數都可以寫成素數的乘積,并且這種乘積的形式是唯一的。這個定理的重要一點是,將1排斥在素數集合以外。如果1被認為是素數,那么這些嚴格的闡述就不得不加上一些限制條件。 前幾天偶爾的有朋友問python怎么判斷素數的方法,走網上查了查,總結了python腳本判斷一個數是否為素數的幾種方法:
1.運用python的數學函數
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.單行程序掃描素數
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): www.jb51.net
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之間的質數(素數)既然只能被1或者自己整出,那說明只有2次余數為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
結果如下:
20011
20021
20023
20029
20047
20051
20063
20071
20089
20101
20107
20113
20117
20123
20129
20143
20147
20149
20161
20173
….
更多使用Python判斷質數(素數)的簡單相關文章請關注PHP中文網!
本文原創發布php中文網,轉載請注明出處,感謝您的尊重!
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的python质数判断if isprime_使用Python判断质数(素数)的简单的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 判断元素是否在ndarray_暨南大学药
- 下一篇: nonlocal python3_Pyt