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

2021-10-09 05:06:55 字數 813 閱讀 3740

步驟簡介

輸出陣列中餘下的a[i]!= 0的數

我的**

#include

#include

#include

intmain()

//做篩法的準備:求出對應的開方數,新得遍歷倍數

edge =

(int

)sqrt

(n);

for(i =

2;i <= edge;i ++)}

}//輸出所有的不為零的部分

for(i =

0;i < n;i ++)}

return0;

}

教程**
#include

#include

#include

#define n 100

void

printprime

(int a,

int n)

;void

siftprime

(int a,

int n)

;int

main()

void

siftprime

(int a,

int n)

edge =

sqrt

(n);

for(i =

2;i <= edge;i ++)}

}}void

printprime

(int a,

int n)

}printf

("\n");

}

分析與總結

篩法求n以內的素數

篩法求素數 把2到n中所有的數都列出來,然後從2開始,先劃掉n內所有2 的倍數,然後每次從下乙個剩下的數 必然是素數 開始,劃掉其n內的所有倍數。最後剩下的數,就都是素數。空間換時間,加快了計算速度。include include include include define maxn 100000...

篩選法求100以內的素數

step1 初始化乙個a陣列,從a 2 到a 100 以內都為自己。step2 對每個數,如果可以被2,3,5,7,11,13.素數 整除則該數設為0,因為素數的倍數是可以被除1和本身以外的其它數整除,是合數 step3 列印出所有非0的數,即為素數。改自愛課程 c語言程式設計 蘇小紅老師 incl...

篩法求素數 求100之內的素數

素數 定義為在大於1的自然數中,除了1和它本身以外不再有其他因數。篩法求素數,需要對素數和非素數做出不同的標記,或者只標記非素數 素數 現用0標記非素數,素數不標記。引用陣列,使0 100與陣列元素一 一相對應 0即a 0 1即a 1 2即a 2 注意特例,1 即a 1 不是素數,首先標記為0 剩下...