1、判斷是否是素數
2、求n以內的素數def
isprime
(n):
if n <==1:
return
false
i = 2
while i * i <= n:
if n % i == 0:
return
false
i += 1
return
true
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...