篩法求素數:把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...