找素數的一點思考

2021-07-15 02:50:13 字數 789 閱讀 7729

2016.7.17

本文**均由c++編寫

經典的素數判定演算法是這樣:給定乙個正整數n,用2到sqrt(n)之間的所有整數去除n,如果可以整除,則n不是素數,如果不可以整除,則n就是素數。所以求小於n的所有素數程式如下:

#include

#include

using

namespace

std;

#define n 1001

bool isprime(int n)

if(co == 1)

return

true;

else

return

false;

}int main()

}int main()

如何理解埃拉託斯特尼篩法呢?合數n一定是小於n的某個或若干素數的整數倍。反之,如果n不是任何比它小的素數的倍數,則n必然是素數。

經典素數判定演算法中,並不需要用2到sqart(n)之間的所有整數去除n,只需要用其間的素數就夠了,原因也是合數一定可以表示成若干個素數之積。演算法的改進版本如下:

#include

#include

using

namespace

std;

#define n 1001

int isprime[n];

int main()

if (flag)

此演算法相比於普通經典演算法,可謂是用空間換時間。

篩選法找素數演算法的一點改進

自從接觸程式設計以來,發現,選找素數這一題目一直是演算法界乙個長盛不衰的題目,而篩選法似乎是這一題目巧妙極致的乙個解法。不過不知足的我們依然不肯罷休,對程式中那幾次重複運算始終耿耿於懷。什麼時候電腦才能像我們一樣不知是機械的重複呢?呵呵,我們還是先看一下這個問題中的重複運算吧!2 20 40,5 8...

遞迴的一點思考

廢話不說,直接上 searchtree delete int x,searchtree t else if t left null 沒有兒子的情況也包含了,因為t right 為null else else if x t element t right delete x,t right else t...

一點BPXA的思考

懂的人自然懂。bpxa功能配置 這個概念現在還有印象,記錄下來 一,bpxa是用於bp使用第三方資源的。如使用oracle資料庫,就是在xa裡配置。它的特徵是以開頭 二,bpxa有自己的kcxp佇列。這個佇列是自己的,還是寄生在已有的kcxp佇列中,無影響。三,bpxa在配置kcbp之間的交換資源時...