204 計數質數

2021-10-23 01:13:46 字數 678 閱讀 5687

題目描述

解題思路

這道題不難,思路很簡單,迴圈找到符合要求的素數。但是暴力法的時間複雜度是o(n2),在n很大的時候會超時,所以得採用更高效的方法。

1、暴力法(提交會超時)

public

intcountprimes

(int n)}if

(flag ==

1)

count++;}

return count;

}

2、厄拉多塞篩法

要得到自然數n以內的全部質數,必須把不大於根號n的所有質數的倍數剔除,剩下的就是質數。

public

intcountprimes

(int n)}}

for(

int i =

2;i < n;i++

)return count;

}

204 計數質數

統計所有小於非負整數 n 的質數的數量。示例 輸入 10 輸出 4 解釋 小於 10 的質數一共有 4 個,它們是 2,3,5,7 這個題目思路很簡單,但是可能效率不高,裡面有一些小trick需要注意,所以在這裡記錄一下優化過程。思路1 逐個判斷每個數是否質數,超時 class solution d...

204 計數質數

統計所有小於非負整數 n 的質數的數量。示例 輸入 10 輸出 4 解釋 小於 10 的質數一共有 4 個,它們是 2,3,5,7 判斷質數的常規解法 如判斷n是否為質數,只需要判斷n是否能整除2 int sqrt n 厄拉多塞篩法 比如說求20以內質數的個數,首先0,1不是質數.2是第乙個質數,然...

204 計數質數

統計所有小於非負整數 n 的質數的數量。示例 輸入 10 輸出 4 解釋 小於 10 的質數一共有 4 個,它們是 2,3,5,7 埃拉託色尼篩選法,迴圈中置對應值的倍數為0,最後統計為1的個數,也就是質數的個數。class solution def countprimes self,n int i...