使用Python判斷質數 素數 的簡單方法講解

2022-09-28 02:03:15 字數 2104 閱讀 8344

質數又稱素數。指在乙個大於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 coun程式設計客棧t(2):

if i * i > n:

return true

if n % i == 0:

return false

3.不使用模組的兩種方法 

方法1:

def isprime(n):

if n <= 1:

rewww.cppcns.comturn 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判斷質數(素數)的簡單方法講解

本文位址: /jiaoben/python/149377.html

python基礎練習 判斷質數(素數)

給定乙個正整數,編寫程式計算有多少對質數的和等於輸入的這個正整數,並輸出結果。輸入值小於1000。如,輸入為10,程式應該輸出結果為2。共有兩對質數的和為10,分別為 5,5 3,7 質數 0 怎麼判斷質數?定義乙個函式判斷是否是質數 1 求出整數範圍內的質數 存到列表 2 遍歷所有的質數,求出和等...

mysql 判斷質數 質數(素數)判斷演算法總結

1.原始演算法 就是將質數的定義翻譯成 就要看i是否能被小於它的sqrt i 的數整除。時間複雜度o n sqrt n 空間複雜度o m m為質數個數。2.質數篩法 定義bool is prime n 1 初始化為1 奇數為1,偶數為0 已經2為最小的質數,將2的倍數的布林值都設為false,如此類...

Python 判斷是否為質數或素數

乙個大於1的自然數,除了1和它本身外,不能被其他自然數 質數 整除 2,3,5,7等 換句話說就是該數除了1和它本身以外不再有其他的因數。首先我們來第乙個傳統的判斷思路 def handlernum num 質數大於 1 if num 1 檢視是否有其他因子 for i in range 2,num...