找質數 演算法學習記錄

2021-10-10 13:38:51 字數 1151 閱讀 5855

找質數-演算法學習記錄

//判斷x是否為質數

if(x %2==

0)//如果x為偶數且不為2,直接返回不為質數

for(

int i =

3; i <=

sqrt

(x); i++

,i++)}

return

true;}

intjudge

(int x)

for(

int i =

3; i <= x/

2; i++

,i++)}

}return-1

;}intmain()

for(

int i =

0; i < t; i++

)return0;

}這個程式的結果是正確的,但是遇到陣列中的數較大時,找質數和的過程會很慢,影響程式執行的時間,我們可以考慮在一開始就講10^6以內的質數找出來。同時找質數的方法也有技巧,我們一般是通過迴圈1~n檢視該數是否能夠被x整除來得到x是否為質數,其實可以反過來想,我們找到所有數的倍數,並標記該數為合數,剩下的不就全是質數了嗎?具體看**的init函式。

#include

#include

using

namespace std;

const

int n =

1e6+5;

bool b[n]=;

void

init()

//記錄前1000005個數中的質數

for(

int i =

2; i * i < n; i++)}

}}intmain()

}}return0;

}

演算法學習記錄

排序演算法複雜度 層序遍歷 雙端佇列 演算法流程 特例處理 當樹的根節點為空,則直接返回空列表 初始化 列印結果空列表 res 包含根節點的雙端佇列 queue bfs 迴圈 當 queue 為空時跳出 新建列表 temp 用於臨時儲存當前層列印結果 當前層列印迴圈 迴圈次數為當前層節點數 即 qu...

Manacher s演算法學習記錄

在leetcode上刷題時遇到了這個問題,認真學習了該演算法。參考 演算法共分為三步 1.將字串a轉化為奇數長度字串b 2.計算字串b中以每乙個元素為中心的回文子串長度得到數字陣列c 3.獲取c中的最大值並依據此最大值擷取字串a得到目標最長的回文字串。直接上關鍵 預處理原始字串,將其轉化為奇數長度。...

PCA演算法學習記錄

重要宣告 以下內容主要參考吳恩達機器學習課程和張洋的pca數學原理文章 降維 dimensionality reduction 降維的目的 1 資料壓縮 2 視覺化資料。pca principal component analysis 是一種常用的資料分析方法。pca通過線性變換將原始資料變換為一組...