方法:利用for迴圈語句或filter()方法循環遍歷數組,在每次迴圈中將一個數組元素分別移除2到“sqrt(元素本身)”,如果能被整除,則表示該數組元素不是質數,反之是質數;如果數組元素是質數,則輸出該元素即可。
本教學操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。
什麼是質數?
質數又稱質數,是指在大於1的自然數中,除了1和它本身以外不再有其他因數的自然數。
JavaScript怎麼求陣列中的質數
#利用for迴圈語句或filter()方法迴圈遍歷數組,在每次迴圈中判斷一個數組元素是不是質數,如果是,則輸出該元素。
判斷是不是質數的方法:用一個數分別去除2到sqrt(這個數),如果能被整除,則表示此數不是質數,反之是質數。
下面看看實作方法:
利用for迴圈
var a = [31,33,35,37,39,41,43,45,57,49,51,53]; for(var i=0;i<a.length;i++){ var flag = 1; for(var j = 2; j*j <= i; j++) {//能被2 - sqrt(i)整除的数 if(a[i] % a[j] == 0) { flag = 0; break; } } if(flag == 1) { console.log(a[i]) } }
##利用filter()方法
function f(value, index, ar) { high = Math.floor(Math.sqrt(value)) + 1; for (var div = 2; div <= high; div++) { if (value % div == 0) { return false; } return true; } } var a = [31, 33, 35, 37, 39, 41, 43, 45, 57, 49, 51, 53]; var a1 = a.filter(f); console.log(a1);【推薦學習:
javascript高階教學】
以上是JavaScript怎麼求數組中的質數的詳細內容。更多資訊請關注PHP中文網其他相關文章!