尋找N以內的素數 《程式設計珠璣 續 》第1章

2021-06-26 20:13:56 字數 698 閱讀 5725

下面給出了六段程式,分別是求n以內素數的演算法的不斷改進,從2s到1ms。

p1:用prime計算素數,時間2.019s

#include#includeusing namespace std;

int prime(int n)

int prime(int n)

int prime(int n)

int prime(int n)

{ if( (n!=2 && n%2==0) || (n!=3 && n%3==0) || (n!=5 && n%5==0))

return 1;

int bound=root(n);

for(int i=7;i#includeusing namespace std;

int prime(int n)

{ if( (n!=2 && n%2==0) || (n!=3 && n%3==0) || (n!=5 && n%5==0))

return 1;

for(int i=7;i*i先把x中所有數置1,然後如果不是素數就置0。

#include#includeusing namespace std;

int main()

{ const int n=100000;

clock_t start,end;

char x[n+2];

for(int i=0;i>1);i

python尋找n以內的素數演算法

本文所利用的素數性質是 所有的素數都是奇數,且除2,3外其餘素數都出現在6n 1與6n 1這兩個數列中 具體 如下 首先建立乙個長度為n的false列表,再將索引為2,3,和6n 1 6n 1這兩個數列在列表中的值改為true l false n l 2 l 3 truel 5 n 6 true l...

求n以內的素數

求n以內素數。素數又稱質數,它是這樣的整數,它除了能表示為它自己和1的乘積以外,不能表示為任何其它兩個整數的乘積。有兩種方法 篩選法和開根號法 篩選法 從小到大篩去乙個已知素數的所有倍數。依次刪除可被2整除,3整除。的數字,剩下的則為素數 開根號法 如果乙個數 2 對這個數求平方根,如果這個數能被這...

題解 篩選N以內的素數

題目描述 用簡單素數篩選法求n以內的素數。輸入 n 輸出2 n 的素數 樣例輸入 30樣例輸出23 571113 1719 2329 題解 首先先解釋一下素數是什麼?素數一般指質數,質數是指在大於1的自然數中,除了1和它本身以外不再有其他因數的自然數。在一般領域,對正整數n,如果用2到n的開方之間的...