LeetCode 計數質數

2021-08-22 10:33:57 字數 797 閱讀 7312

計數質數

以下直接摘抄:

西元前250年,希臘數學家厄拉多塞(eeatosthese)想到了乙個非常美妙的質數篩法,減少了逐一檢查每個數的的步驟,可以比較簡單的從一大堆數字之中,篩選出質數來,這方法被稱作厄拉多塞篩法(sieve of eeatosthese)。

具體操作:先將 2~n 的各個數放入表中,然後在2的上面畫乙個圓圈,然後劃去2的其他倍數;第乙個既未畫圈又沒有被劃去的數是3,將它畫圈,再劃去3的其他倍數;現在既未畫圈又沒有被劃去的第乙個數 是5,將它畫圈,並劃去5的其他倍數……依次類推,一直到所有小於或等於 n 的各數都畫了圈或划去為止。這時,表中畫了圈的以及未劃去的那些數正好就是小於 n 的素數。

演算法**如下:

class solution 

if(n == 3)

int count= 0;

boolean mark = new

boolean[n];

mark[2] = false;

// 先標記2

for (int i = 3; i < n; i++) else

}for (int i = 3; i < n; i += 2)

// 打標記(j是倍數)

for (int j = 2; i * j < n; ++j) }}

// 計數

for(int i=2;iif(!mark[i])

}return count;

}}

LeetCode 計數質數

q 統計所有小於非負整數 n 的質數的數量。示例 1 輸入 n 10 輸出 4 解釋 小於 10 的質數一共有 4 個,它們是 2,3,5,7 示例 2 輸入 n 0 輸出 0 示例 3 輸入 n 1 輸出 0 a 如果我們在進行順序遍歷時,每取得乙個數 排除0 1 如果將它所有的倍數 排除0 1 ...

leetcode 204 計數質數

統計所有小於非負整數 n 的質數的數量。示例 輸入 10輸出 4解釋 小於 10 的質數一共有 4 個,它們是 2,3,5,7 厄拉多塞篩法 西元前250年,希臘數學家厄拉多塞 eeatosthese 想到了乙個非常美妙的質數篩法,減少了逐一檢查每個數的的步驟,可以比較簡單的從一大堆數字之中,篩選出...

leetcode204 計數質數

統計所有小於非負整數 n 的質數的數量。示例 輸入 10 輸出 4 解釋 小於 10 的質數一共有 4 個,它們是 2,3,5,7 厄拉多賽篩法,先找到不超過根號n的所有素數,再把這些素數的所有倍數去掉 class solution def countprimes self,n int int 厄拉...