乙個數如果可以進行因數分解,那麼分解的兩個數一定是乙個小於等於sqrt(n),乙個大於等於sqrt(n),因此遍歷到sqrt(n)即可。因為如果sqrt(n)左側找不到因數,右側也一定找不到因數。中心思想:遍歷n是否能被2到sqrt(n)之間的數整除,如果不能則為質數。
import math
defis_prime
(n):
if n==1:
return
false
elif n==2:
return
true
else
:for i in
range(2
,int
(math.sqrt(n))+
1):if n%i==0:
return
false
return
true
print
(is_prime(5)
)#true
print
(is_prime(9)
)#false
由上面的判斷乙個數是否是質數引申判斷某個範圍內的質數有哪些?可以用下面的方法進行判斷
result=
for i in
range(1
,100
)if is_prime(i)
:print
("result=%s"
%result)
#result裡面就是[1,100]範圍內的質數
演算法小練習 判斷乙個數是否是質數
第一種常規方法 var isprime function num 查表直接返回的素數 var pmap return dmap num false pmap num true num 5 false num 1 6 true num 1 6 true false 第二種方法 var isprime ...
JS判斷乙個數是否為質數
非正則實現function isprime num 因為2是比較特殊的質數,所以先拿出來 if num 2 else if num 2 0 依次判斷是否能被奇數整除,最大迴圈為數值的開方 let squareroot math.sqrt num 因為2已經驗證過,所以從3開始 且已經排除偶數,所以每...
判斷乙個數是否為質數(素數)
從鍵盤上輸入乙個數,判斷這個是數是否為質數 素數 質數 素數 除了1和它本身不能被其它數整數的數。如果 i,n 都是整數,那麼 i n 0,那麼就稱 i 是 n 的倍數,n 是 i 的約數或者因數,n 整除 i,i 被 n 整除。演算法 判斷乙個數是否質數 素數 只需判斷有沒有乙個數可以整除這個數就...