Skip to content

204. Count Primes

Difficulty Topics

Description

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

Solution

count-primes.py
class Solution:
    def countPrimes(self, n: int) -> int:
        if n <= 1: return 0

        arr = [True] * n
        arr[0] = arr[1] = False

        for i in range(2, n):
            if arr[i]:
                for j in range(i * i, n, i):
                    arr[j] = False

        return sum(arr)
count-primes.cpp
class Solution {
public:
    int countPrimes(int n) {
        vector<bool> arr(n, false);
        int count = 0;

        if (n <=2){
            return 0;
        } 

       for (int i = 2; i < n; i++){
           if (!arr[i]){
               count++;

               for (int j = 2; i*j<=n; j++)
                   arr[i*j] = true;
           }
       }

        return count;
    }
};