LeetCode 204. Count Primes

Description

https://leetcode.com/problems/count-primes/

Given an integer n, return the number of prime numbers that are strictly less than n.

Example 1:

Input: n = 10
Output: 4
Explanation: There are 4 prime numbers less than 10, they are 2, 3, 5, 7.

Example 2:

Input: n = 0
Output: 0

Example 3:

Input: n = 1
Output: 0

Constraints:

  • 0 <= n <= 5 * 106

Explanation

pre-calculate all primes numbers less than or equal to the given number

Python Solution

class Solution:
    def countPrimes(self, n: int) -> int:
        if n < 3:
            return 0
        
        is_prime = [True for i in range(n)]        
        
        is_prime[0] = False
        is_prime[1] = False
        
        
        for i in range(2, n):
            if is_prime[i]:
                for j in range(2 * i, n, i):
                    is_prime[j] = False
                                        
        return sum(is_prime)
  • Time complexity: O(N^2).
  • Space complexity: O(N).

One Thought to “LeetCode 204. Count Primes”

Leave a Reply

Your email address will not be published.