演算法學習記錄02-判斷輸入數字是不是質數

ldzsl發表於2021-09-09

需求:判斷一個輸入數是不是質數

分析:

1.什麼是質數?

只能被1和本身整除的數就是質數,1既不是質數也不是合數;

質數總是等於6x+1 或者 6x+5,x是大於等於1的自然數;

假如n是合數,必然存在非1的兩個約數p1和p2,其中p1<=sqrt(n),p2>=sqrt(n),證明是不是質數可以迴圈到sqrt(n) 這部分就夠了

2.關鍵程式碼點

function isPrime(number){
  if(number<=3){
    return number > 1
  }
  if(number % 6 != 1 && number % 6 != 5){
    return false
  }
  for(let i = 2;i<=Math.sqrt(number);i++){
    if(number % i === 0){
      return fasle
    }
  }
  return true
}

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2325/viewspace-2826588/,如需轉載,請註明出處,否則將追究法律責任。

相關文章