The prime counting function π(x) counts primes ≤ x. Chebyshev proved elementary bounds 0.92x/ln(x) < π(x) < 1.1x/ln(x) for large x, implying Bertrand's postulate: there exists a prime between n and 2n.
The prime counting function π(x) is deceptively simple to define: count the number of primes ≤ x. So π(10) = 4 (the primes 2, 3, 5, 7) and π(100) = 25. The deep question is how fast π(x) grows. Empirically, primes thin out as numbers get larger — there are fewer primes in the millions than in the tens. But how thinned out, precisely? This is the central question of analytic number theory, and Chebyshev gave the first rigorous quantitative answer in the mid-19th century, decades before the prime number theorem was fully proved.
Chebyshev's key insight was to study not π(x) directly, but the smoother auxiliary functions θ(x) = Σ ln(p) over primes p ≤ x and ψ(x) = Σ ln(p) over prime powers p^k ≤ x. These are smoother objects than the jagged step function π(x), and they are closely related to it: θ(x) ~ ψ(x) ~ x implies π(x) ~ x/ln(x). Using elementary bounds on binomial coefficients — specifically that (2n choose n) can be bounded both above (by 4^n) and below (by products over primes in (n, 2n]) — Chebyshev proved that π(x) is sandwiched: 0.92x/ln(x) < π(x) < 1.1x/ln(x) for all sufficiently large x. This was the first proof that π(x) has the right *order of magnitude* as x/ln(x).
Bertrand's postulate — that for any integer n ≥ 1 there is always a prime strictly between n and 2n — follows as a corollary. The binomial coefficient (2n choose n) must include prime factors in the range (n, 2n); if none existed, the coefficient would be too small relative to the established lower bound. The result is remarkable: no matter how large you go, you never have to travel further than a factor of 2 to find the next prime. This was known empirically long before Chebyshev's proof and had practical uses in construction of prime tables.
The Chebyshev bounds establish the right order of magnitude; the full prime number theorem — π(x) ~ x/ln(x) in the strict asymptotic sense — sharpens "bounded between constants times x/ln(x)" to "exactly x/ln(x)" and was proved independently in 1896 by Hadamard and de la Vallée Poussin using the analytic properties of the Riemann zeta function ζ(s). The gap between Chebyshev's elementary argument and the eventual proof took half a century to close, and it required a completely different mathematical toolkit. Understanding Chebyshev bounds thus gives you the scaffolding — the right intuition and order of magnitude — before you encounter the deeper analytic machinery needed for the exact result.