素數篩(卡時間複雜度的題目)

2021-08-09 00:03:51 字數 689 閱讀 2363

(1)型別:數學中典型的素數題目。

(2)題目:

/* description

現在給你乙個正整數n,要你快速的找出在2…..n這些數裡面所有的素數。

input

給出乙個正整數數n(n<=2000000)

但n為0時結束程式。

測試資料不超過100組

output

將2~n範圍內所有的素數輸出。兩個數之間用空格隔開

sample input

5 10

11 0

sample output

2 3 5

2 3 5 7

2 3 5 7 11

*/ (3)解題思路:素數篩是根據進一步的素數的判定拓展,利用打表和總結的特殊方法進行降低複雜度。

(4)時間複雜度:o(n)。

(5)總結:學習了素數篩其實在以後的演算法中所有的素數問題都可以用素數篩的方法以避免超時。

(6)**:

#include

#include

const

int n =2e6+6;

int isprime[n];

void prime(int n)

} int main(void)

return

0;}

尤拉篩 篩法求素數 及其例題 時間複雜度O n

埃式篩法儘管不錯,但是確實做了許多無用功,某個數可能會被重複的篩好幾次,尤拉篩解決了這個方法,下面為 注意理解if i prim j 0 break 大佬講的不錯的部落格,我就不做復讀機了。點我傳送 void ispirm 這裡用字首和處理一下就可以再o 1 的時間複雜度情況查出了。keep on ...

dfs時間複雜度 時間複雜度 空間複雜度

時間複雜度的數學證明方法相對比較複雜,通常在工程實際中,會分析就好。注意 只看最高複雜度的運算 int for for for for int遞迴如何分析時間複雜度?常數係數可以忽略,在分析時不用考慮,只要說以上術語即可。主定理 master throrem 上述第四種是歸併排序,所有排序演算法,最...

時間複雜度 空間複雜度

時間複雜度 在電腦科學中,演算法的時間複雜度是乙個函式,它定性描述了該演算法的執行時間。這是乙個關於代表演算法輸入值的字串 的長度的函式。時間複雜度常用大o符號 表述,不包括這個函式的低階項和首項係數。計算時間複雜度的方法 1 只保留高階項,低階項直接丟棄 2 係數不要 3 執行次數是常數是為o 1...