204. 計數(shù)質(zhì)數(shù)

204. 計數(shù)質(zhì)數(shù)

題目

首先從 2 開始,我們知道 2 是一個素數(shù),那么 2 × 2 = 4, 3 × 2 = 6, 4 × 2 = 8... 都不可能是素數(shù)了。

然后我們發(fā)現(xiàn) 3 也是素數(shù),那么 3 × 2 = 6, 3 × 3 = 9, 3 × 4 = 12... 也都不可能是素數(shù)了。

我們維護一個list:isprime。初始把isprime全部置為True,然后遍歷這個list。如果為true,,表示這個數(shù)為質(zhì)數(shù),則ans加1,然后把當(dāng)前數(shù)字的倍數(shù)對應(yīng)的isprime置為False。如果為False,表明當(dāng)前這個數(shù)為合數(shù),不做任何操作。

class Solution:
    def countPrimes(self, n: int) -> int:
        isprime = [True] * (n-1)
        ans = 0
        for i in range(1,n-1):
            if isprime[i]:
                ans += 1
                p = i + i + 1
                while p<n-1:
                    isprime[p] = False
                    p += i + 1
        return ans
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容