埃氏篩法o(nloglogn) 仍會重複標記合數
such as :
i=2時
12=2*6,先會被 2 標記已是合數
i=3時
12=3*4,又被標記了一次
我們在生成乙個需要標記的合數時,每次只向現有的數中乘上乙個質因子,並且讓它是所生成合數的最小質因子
code
#include#includeusing
namespace
std;
const
int mx=1001
;int
v[mx],prime[mx];
intn,cnt;
void
getpri()
for(int j=1;j<=cnt;++j)
}for(int i=1;i<=n;++i)
}int
main()
找素數(質數) 線性篩法和埃氏篩法
先看這道題 洛谷p1217回文質數 對於這道題,普通的暴力模擬會tle,所以得尋求改進。這裡我學會了兩種方法 第一種 線性篩法 這種演算法的核心思想就是 任何乙個合數都可以由質數相乘得到 下面就是核心 吃透了核心 就可以在其中新增點細節,然後就可以拿去解決問題了 這裡需要開多大的陣列取決自己 boo...
質數中的質數(質數篩法)
如果乙個質數,在質數列表中的編號也是質數,那麼就稱之為質數中的質數。例如 3 5分別是排第2和第3的質數,所以他們是質數中的質數。現在給出乙個數n,求 n的最小的質數中的質數是多少 可以考慮用質數篩法來做 input 輸入乙個數n n 10 6 output 輸出 n的最小的質數中的質數。input...
普通質數篩法
二 埃氏篩 三.尤拉篩法 4.質數距離 從暴力的直接迴圈開始,一步步對演算法進行優化,一步步簡化時間複雜度,並盡可能討論各種篩法的優劣,以及其中每一步的意義。思路直接,容易被像我們這樣的新手第一時間想到,乙個質數,除了1和它本身以外不再有其他因數,那麼想知道乙個數是不是質數,乾脆直接去看看它有幾個因...