判斷一個數是否是質數?
阿新 • • 發佈:2018-07-02
UNC == 循環 高級算法 意義 完整 超過 不能 極限 判斷一個數是否是素數(質數)
思路:除了自身和1以外,不能被其他數整除。
註意點:
1.必須用for循環實現
2.判斷是否是素數,所以她的返回值應該是true或者false。
3.如果num%i===0了,那麽一定不是素數。只有出了1和自身以外所有的數都不能整除,那麽才能說她是素數。
(1)算法完整遍歷
function isPrime(num){
//除了自身和1以外,不能被其他數整除。
for(var i=2;i<num;i++){
if(num%i===0){
return false;
}
}
return true;
}
(2)中級算法
function isPrime(num){
//除了自身和1以外,不能被其他數整除。
for(var i=2;i<=num/2;i++){
if(num%i===0){
return false;
}
}
return true;
}
(3)高級算法版本
function isPrime(num){
//除了自身和1以外,不能被其他數整除。
//判斷一個數是不是指數,只需要判斷到他的平方根,超過平方根在判斷,無意義。
//因為一個數是由兩個數相稱得到的,一個變大,另外一個必然變小,那麽判斷到這個數的平方根就已經是極限了,不必超過平方根
for(var i=2;i<=Math.sqrt(num);i++){
if(num%i===0){
return false;
}
}
return true;
}
判斷一個數是否是質數?