思路:利用桶排序將範圍的數都先標記為1,然後通過計算素數的倍數把和數計算出來,然後將和數標記為0。
時間複雜度:n*lgn
優點:思路清晰,容易手寫。
缺點:是三種寫法裡最慢的一種。
#include
using namespace std;
const int n=1e7+10;
int prime[n]
;//prime陣列儲存:素數
bool b[n]
;//b陣列用來標記哪些數字是素數,哪些是素數的倍數也就是和數;
void get_prime(
)}
思路:埃氏篩在素數篩的基礎上做了一些改進,減少了一些重複運算。
時間複雜度:n*lg(lgn)
優點:思路清晰,容易手寫。
缺點:不是最快的演算法,仍然包含了重複計算。
#include
using namespace std;
const int n=1e7+10;
int prime[n]
;//prime陣列儲存:素數
bool b[n]
;//b陣列用來標記哪些數字是素數,哪些是素數的倍數也就是和數;
void get_prime()}
}
思路:從2開始篩,每次去除和數的時候,只去除到這個和數的最小素數時退出,剩下的和數由其他的素數去篩,一次只前進有限的個數並不是前進到最大值,因此可以不出現重複運算。
優點:最快的篩法。
缺點:不太容易記憶。
#include
using namespace std;
const int n=1e7+10;
int prime[n]
;//prime陣列儲存:素數
bool b[n]
;//b陣列用來標記哪些數字是素數,哪些是素數的倍數也就是和數;
void get_prime()}
}int main(
)
get post put三種寫法
首先get請求寫法 ch curl init 請求位址 curl setopt ch,curlopt returntransfer,true 獲取資料返回 curl setopt ch,curlopt binarytransfer,true 在啟用 curlopt returntransfer 時候...
for迴圈的三種寫法
1 遍歷迴圈 for 迴圈變數型別 迴圈變數名稱 迴圈條件 更新語句 迴圈體 string arr for int i 0 i arr.length i 列印台abc d2 迭代器迴圈 string arr listlist arrays.aslist arr for iteratoriterato...
setInterval 的三種寫法
前言 setinterval fun time 有兩個引數 fun 為要執行的函式 time為多久執行一次函式,單位是毫秒 我們做乙個簡單的例子,就是每隔5s彈出乙個 hello 的對話方塊。先看第一種寫法,把方法體抽離出來,以字串的形式呼叫函式名,這種寫法呼叫函式名是不能傳參的 第二種寫法是把要執...