【每日一題】【埃氏篩】204. 計數質數

xiaoxinlong發表於2024-11-22

給定整數 n ,返回 所有小於非負整數 n 的質數的數量

class Solution:
    def countPrimes(self, n: int) -> int:
        # 埃氏篩:時間複雜度:O(nloglogn)。
        # 質數標記為0。1不是質數
        isPrime  = [0] * n
        ans = 0
        for i in range(2, n):
            if isPrime [i] == 0:
                ans += 1
                if i*i < n:
                    for j in range(i * i, n, i):
                        isPrime[j] = 1
        return ans

相關文章