思路:
1,排除傳入引數為小於2的數(if(param < 2)return;);
2,建立有乙個元素2的陣列(let arr = [2]);
3,建立乙個初始值為3(i = 3),最大值為傳入引數的迴圈(i <= param),注意偶數不可能為指數,所以迴圈的時候直接去掉偶數,直接迴圈奇數(i += 2);
4,定義當前迴圈的標記(flag = true);
5,建立乙個初始值為3(j = 3),最大值為當前值(j < i),注意能被偶數整出的數就能被2整除,所以排除所有偶數,直接迴圈奇數(j += 2);
6,判斷當前值i是否能被3~i之間的某個奇數整除(i%j === 0),如果整除就flag = false 並且退出當前迴圈(break);
7,最後在外部迴圈最後位置進行判斷,如果flag有效,就將該值push進陣列(if(flag))
**:
function primenum(param)
} if(flag)arr.push(i);
} return arr;
}
測試:
console.log(primenum(100));//[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
console.log(primenum(3));//[2,3]
注意:
1,兩次迴圈都只用迴圈奇數,減少迴圈次數
2,在迴圈開始就將2排除
3,當前迴圈的標記flag,在外部迴圈push
其他[我的部落格,歡迎交流!](
[我的csdn部落格,歡迎交流!](
[前端筆記專欄](
[前端筆記列表](
[遊戲列表](
posted @
2017-09-14 10:33
newman·li 閱讀(
...)
編輯收藏
C DataGridView如何獲取某個資料
datagridview的幾個基本操作 1.獲取某個 指定的 單元格的值 datagridview1.row i cells j value 2.獲取選中的總行數 datagridview1.selectedrows.count 3.獲取當前選中行的索引 datagridview1.currentr...
Jquery獲取選中行的某個資料
1.頁面結構 交易日期 交易型別 交易金額 狀態是否核銷 流水 操作 list list as item if item.income 0 支出 else 收入 if item.income 0 else if item.state 1 未對賬 elseif item.state 2 對賬中 els...
獲取某個陣列的全排列 遞迴
思路講解 乙個元素的序列全排列是其本身 對於乙個n個元素的序列 沒有重複元素 而言,我們可以把其分解為n個子問題 即依次讓每個元素作為首元素,剩下的n 1個元素進行全排列,例子 對元素全排列可以分解為對 以1開頭,拼接上對的全排列 以2開頭,拼接上對的全排列 以3開頭,拼接上對的全排列 依次類推,對...