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

2021-10-23 03:37:15 字數 768 閱讀 7073

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

#include

#include

using

namespace std;

#define max_num 1000000

char isprime[max_num+10]

;//最終如果isprime[i]為1,則表示i是素數

intmain()

for(

int i=

2;i<=max_num;

++i)

for(

int i=

2;i<=max_num;

++i)

return0;

}

5行**定義乙個char型別的陣列即可存放0 1。因為節約記憶體空間。

使用篩選法求N以內的素數

1.使用篩選法求素數的思想是 使用乙個bool isprime n 來儲存乙個數是不是素數的標誌位。首先偶數不是素數 2除外 將2的倍數isprime全部設定為false。i從3開始遍歷,如果i為素數,則將i的倍數isprime全部設定成false。這樣就篩選掉了好多不是素數的數。從0遍歷ispri...

篩選法求100以內的素數

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

質數篩選 素數篩選法

int prime 100010 void prime for int i 1 i i 1000000 i define size 1000000 int main 元素值為0代表是素數 int prime size int pos 0 int flag for int i 2 i size i p...