下面給出了六段程式,分別是求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的開方之間的...