朋友今天出了一道演算法,判斷回文素數,回文素數每判斷出來,出了一堆bug(第一次寫博客的萌新瑟瑟發抖),結果就判斷了一個素數,咋看其實素數挺簡單的,但是執行起來還是有難度,可能是自己還學的不夠,
下面就是判斷素數的一個方法:
var repeat = 100;
var flag = true;
if(repeat >= 0) { //判斷 如果輸入數字大于0 則執行下面判斷
if (repeat == 0 || repeat == 1) //判斷輸入數值是否為0或者1
flag = false; //如果是的則輸出false
else if(repeat == 2) flag = true; //如果輸入的是2 則判斷為true
//如果以上兩種都不是則進入以下判斷,邏輯:如果repeat取余小于repeat的所有數都不為0,證明它除是除不盡的,則是素數
else{
for(var i = 2;i<= Math.sqrt(repeat); i++) { //repeat取余repeat開根號(數學方法)例如輸入為100根號5/ 10 20所有的因素都分布在了根號兩邊,則i取值為10;
if(repeat % i == 0) { //如果取余i等于0那就不是素數 直接跳出回圈
flag = false;
break;
}
}
}
}
else flag = false; //如果零輸出為負數,就輸出false
console.log(flag);
現在對于開根號還是了解的不夠透徹,演算法分析能力有待加強!
萌新第一次發表博客(輕噴),
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/347143.html
標籤:其他
