篩法求n以內的素數

2021-09-12 12:58:55 字數 387 閱讀 5609

篩法求素數:把2到n中所有的數都列出來,然後從2開始,先劃掉n內所有2 的倍數,然後每次從下乙個剩下的數(必然是素數)開始,劃掉其n內的所有倍數。最後剩下的數,就都是素數。

空間換時間,加快了計算速度。

#include#include#include#include#define maxn 1000000

using namespace std;

bool isprime[maxn+10];//判斷是否為素數的陣列

int main()

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

if(isprime[i])

cout

}

篩選法求n以內素數(質數)

設定乙個標誌陣列isprime,isprime i 的值是1就表示i是素數。開始陣列元素值全部為1劃掉k的倍數,就是把isprime 2 k isprime 3 k 置成0最後檢查isprime陣列,輸出isprime i 為1的那些i include include using namespace...

篩法求素數 線性篩法求素數

2021年更新版 篩法求素數 線性篩法求素數 要理解篩法求素數首先要知道乙個定理,整數唯一分解定理 任意大於等於2的正整數都有且只有一種方式寫出其質因子的乘積表示式。a p1p2p3p4 pn pi是素數且pi pj eg 2 2 4 22 12 223 36 2233 也就是說任意乙個合數都能分成...

C語言 篩法求100以內的素數

步驟簡介 輸出陣列中餘下的a i 0的數 我的 include include include intmain 做篩法的準備 求出對應的開方數,新得遍歷倍數 edge int sqrt n for i 2 i edge i 輸出所有的不為零的部分 for i 0 i n i return0 教程 i...