python 判斷素數以及高效求n以內素數

2021-08-15 15:24:14 字數 702 閱讀 9914

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、求n以內的素數

class

solution:

defcountprimes

(self, n):

""" 初始所有乙個n維陣列 res 表示數都為素數。

從3開始將3的奇數倍標記成false,即不是素數。

之後對每乙個素數此行上一步操作

這裡我們不用管偶數倍,因為我們最後判定時預設所有偶數不是素數

"""if n < 3:return

0 res = [true] * n

for i in range(3, int(n**0.5)+1, 2):

res[i*i::2*i] = [false] * ((n-i*i-1)//(2*i)+1)

return [2] + [i for i in range(3,n,2) if res[i]]

判斷素數 輸出素數以及對稱素數 C

1 判斷輸入是否是素數或者對稱素數。include include include using namespace std isprime 函式用來判斷乙個數是否是素數 bool isprime int int main int argc,char argv return true 2 輸出一定範圍...

用函式實現判斷素數(以及改進思路)

在寫判斷素數這段 之前,我們首先要了解乙個概念什麼是素數?素數,乙個大於1的自 然數,除了1和它自身外,不能被其他自然數整除的數叫做質數 否則稱為合數。規定1既不是質數也不是合數 通過概念,我們可以得到一些思路 1.如果輸入數字等於1或者小於1,不是素數 2.如果輸入數字可以被2到它本身減1整除,不...

演算法 高效求素數

質數又稱素數。指在乙個大於1的自然數中,除了1和此整數自身外,不能被其他自然數整除的數。1不是素數。乙個非素數可以由幾個素數因子相乘得到,這些因子一定小於這個數的開方,因此可通過這個性質求素數 void slow int n if flag cout cout 但這種演算法效率低,複雜度為o n s...