1. 程式人生 > >判斷一個數是否是質數?

判斷一個數是否是質數?

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; }

判斷一個數是否是質數?