LeetCode Problem

How to Solve Count Primes

Start by addressing the problem with a direct prime-counting method, avoiding naive iteration through every number. Use an array to mark non-prime numbers and leverage mathematical insights to reduce redundant checks. This approach balances memory usage and computation for fast, accurate prime counting.

GhostInterview Help

Need help with Count Primes without spending extra time grinding it?

GhostInterview can read Count Primes from a screenshot, generate the answer path, explain the complexity, and support solver-first interview workflows when you need direct help fast.

Screenshot Input

Capture the prompt fast instead of rewriting the problem by hand.

Answer + Complexity

Get the solution path, trade-offs, and complexity summary in one pass.

Stealth Workflow

Stay outside captured layers on supported screen-share workflows.

Problem #204Array plus MathReviewed 2026-03-08
Difficulty
Medium
Primary pattern
Array plus Math
Answer-first problem summary
Step-by-step approach and complexity
GhostInterview solver workflow

Start by addressing the problem with a direct prime-counting method, avoiding naive iteration through every number. Use an array to mark non-prime numbers and leverage mathematical insights to reduce redundant checks. This approach balances memory usage and computation for fast, accurate prime counting.

Problem Statement

Given an integer n, return the total number of prime numbers that are strictly less than n. A prime number is defined as an integer greater than 1 with no divisors other than 1 and itself.

For example, if n = 10, the primes less than 10 are 2, 3, 5, and 7, resulting in an output of 4. Constraints include 0 <= n <= 5 * 10^6, and a brute-force check for each number is inefficient.

Examples

Example 1

Input: n = 10

Output: 4

There are 4 prime numbers less than 10, they are 2, 3, 5, 7.

Example 2

Input: n = 0

Output: 0

Example details omitted.

Example 3

Input: n = 1

Output: 0

Example details omitted.

Constraints

  • 0 <= n <= 5 * 106

Solution Approach

Sieve of Eratosthenes

Use a boolean array to mark numbers as prime or non-prime. Start from 2, and for each prime, mark all its multiples as non-prime. Count the remaining true values for the total primes.

Optimized Enumeration

Only check numbers up to the square root of n for marking multiples. This reduces unnecessary iterations and leverages the array plus math pattern for efficient prime elimination.

Early Exit and Edge Handling

Handle small values like n <= 2 separately to avoid array overhead. This ensures the solution covers all edge cases while maintaining speed for larger inputs.

Complexity Analysis

MetricValue
TimeDepends on the final approach
SpaceDepends on the final approach

Time complexity depends on the sieve: marking multiples up to sqrt(n) yields O(n log log n), while space complexity is O(n) for the boolean array used to track primes.

What Interviewers Usually Probe

  • Checks if you understand the inefficiency of checking all numbers up to n individually.
  • Wants to see familiarity with array-based prime marking techniques.
  • Looks for mathematical reasoning to reduce redundant computation, especially using sqrt(n).

Common Pitfalls or Variants

Common pitfalls

  • Attempting to divide every number by all smaller numbers instead of using a sieve.
  • Not handling n <= 2 edge cases, which can lead to incorrect counts.
  • Incorrectly marking multiples or starting from 0 or 1 instead of 2.

Follow-up variants

  • Count primes in a range [m, n) instead of from 0 to n.
  • Return a list of prime numbers instead of the count, using the same sieve pattern.
  • Modify the sieve to support dynamic updates for multiple queries efficiently.

How GhostInterview Helps

  • GhostInterview provides step-by-step guidance for implementing the Sieve of Eratosthenes efficiently.
  • It highlights edge cases and common mistakes, ensuring your array plus math solution is correct and optimized.
  • The tool can simulate interviewer hints and validate your approach against the expected prime count quickly.

Topic Pages

FAQ

What is the most efficient approach to solve Count Primes?

Using the Sieve of Eratosthenes with a boolean array is the fastest method, leveraging math to avoid redundant checks.

How do I handle n <= 1 in Count Primes?

Return 0 directly for n <= 1, since no prime numbers exist below 2, preventing unnecessary array operations.

Can I use trial division for this problem?

Trial division works but is inefficient for large n; the array plus math sieve pattern is recommended for optimal performance.

What is the time complexity of the optimized sieve?

The time complexity is O(n log log n), and space complexity is O(n) for the boolean array tracking prime numbers.

Does GhostInterview help with the array plus math pattern specifically?

Yes, it focuses on the Count Primes problem's array plus math pattern, guiding you through efficient marking and counting of primes.

GhostInterview Solver

Need direct help with Count Primes instead of spending more time grinding it?

Download GhostInterview when you want a LeetCode solver, not another long practice loop. Capture Count Primes from a screenshot, get the answer path and complexity, and use supported stealth workflows that stay outside captured layers.

Screenshot Input

Capture the prompt fast instead of rewriting the problem by hand.

Answer + Complexity

Get the solution path, trade-offs, and complexity summary in one pass.

Stealth Workflow

Stay outside captured layers on supported screen-share workflows.