How to find number of prime numbers up to to N? Is there any way or function to find out the number of primes numbers up to any number? (Say $10^7$ or $10^{30}$ or $200$ or $300$?)
 A: There is no known expicit formula for this, but we do know how this function behaves asymptotically, that is the famous prime-number theorem. It states that
$$ \pi(n) \approx n/ln(n)$$
But there are certain algorithms for calculating this function. One such example is here Computing π(x): The Meissel, Lehmer, Lagarias, Miller, Odlyzko method
A: $$\pi(n) \approx \frac{n}{\ln(n)}$$
where $\pi(n)$ is the number of primes less than $n$ and $\ln(n)$ is the natural logarithm of $n$. (Googling 'Prime Number Theorem' will tell you more! But this seems particularly nice for a one-page intro: https://primes.utm.edu/howmany.html )
A: The answers above are very correct and state the Prime Number Theorem. Note that below, $\pi(n)$ means the primes less than or equal to $n$. Pafnuty Chebyshev has shown that if $$\lim_{n \to \infty} {\pi(n) \over {n \over \ln(n)}}$$exists, it is $1$. There are a lot of values that are approximately equal to $\pi(n)$ actually, as shown in the table.

A: One of the closest approximations to $\pi(x)$ is the log-integral, $\mathrm{Li}(x)$. The asymptotic expansion is easy to derive using integration by parts:
$$
\begin{align}
\mathrm{Li}(x)
&=\int_2^n\frac{\mathrm{d}t}{\log(t)}\\
&=\frac{n}{\log(n)}+C_1+\int_2^n\frac{\mathrm{d}t}{\log(t)^2}\\
&=\frac{n}{\log(n)}+\frac{n}{\log(n)^2}+C_2+\int_2^n\frac{\mathrm{2\,d}t}{\log(t)^3}\\
&=\frac{n}{\log(n)}+\frac{n}{\log(n)^2}+\frac{2n}{\log(n)^3}+C_3+\int_2^n\frac{\mathrm{3!\,d}t}{\log(t)^4}\\
&=\frac{n}{\log(n)}\left(1+\frac1{\log(n)}+\frac2{\log(n)^2}+\dots+\frac{k!}{\log(n)^k}+O\left(\frac1{\log(n)^{k+1}}\right)\right)
\end{align}
$$
Thus, using the first two terms in the asymptotic series,
$$
\begin{align}
\frac{n}{\log(n)}\left(1+\frac1{\log(n)}+\dots\right)
&=\frac{n}{\log(n)\left(1-\frac1{\log(n)}+\dots\right)}\\
&\approx\frac{n}{\log(n)-1}
\end{align}
$$
Therefore, $\dfrac{n}{\log(n)-1}$ is a better approximation than $\dfrac{n}{\log(n)}$ for large $n$.
A: There is an exact formula, but it requires an enormous amount of computer processing power for large values of $n$.
Starting from the prime indicator function (1 if $n$ is prime, 0 otherwise for integer $n$), which is given by the power series:
$$-8\sum _{h=1}^{\infty} n^{2h}\sum _{i=1}^h \log\zeta(2i)\sum _{v=i}^{h}\frac{(-1)^{h-v}(4\pi )^{2h-2v}}{\zeta(2v-2i)(2h+2-2v)!}$$
the prime counting function, $\pi(x)$, can then be easily derived by summing up the above function over $n$.
$$\pi(x)=-8\sum _{h=1}^{\infty} H_{-2h}(x)\sum _{i=1}^h \log\zeta(2i)\sum _{v=i}^{h}\frac{(-1)^{h-v}(4\pi )^{2h-2v}}{\zeta(2v-2i)(2h+2-2v)!}$$
where $H_{-2h}(x)$ is given by Faulhaber's formulas (not ugly at all, compared to other formulas out there.)
How do you prove the above prime indicator formula? That is the product of two functions, Moebius' $\mu(n)$ and an adjusted Von Mangoldt function, $\Lambda(n)/\log{n}$ (which yields 1/k at the prime powers, $p^k$, otherwise it yields 0, if $n$ is integer), which means $-\mu(n)\Lambda(n)/\log{n}$ is 1 at the primes and 0 otherwise.
Per a theorem known as The inversion formula for Dirichlet series, both these functions can be expressed as a function of the zeta function, and their product results in the function above.
But, there is a trade-off between exactness and computing easiness, the more you have of one the less you have of the other, hence the approximation formulas are more useful for large values.
Reference
An exact formula for the prime counting function
I've added a Mathematica formula for the prime indicator function, the reader can test it with values up to 6 ($n=1,...6$), if they have Mathematica. It will be 1 for integer $n$ prime, and 0 otherwise. (If you want to test higher values, T has to be increased.)
$MaxExtraPrecision = 200; T = 110; n = 6; 
  N[-8*Sum[
   n^(2*h)*Sum[
     Log[Zeta[2*i]]*
      Sum[((-1)^(h - v)*(4*Pi)^(2*h - 2*v))/(Zeta[
           2*v - 2*i]*(2*h + 2 - 2*v)!), {v, i, h}], {i, 1, h}], {h, 
    1, T}], 5]

A: One simple way is to use the Sieve of Eratosthenes in $O(n \log \log n)$ time or linear sieve in $O(n)$ time and count the number of primes found.
The prime-counting function $\pi(n)$ can be computed exactly in sub-linear time, allowing computation of $\pi(10^8), \pi(10^9), \dots$ using the Meissel-Lehmer algorithm.
The starting point is the observation by Legendre via inclusion-exclusion that the number of integers $\le x$ divisible by no prime $p_i \le \sqrt x$ is
$$
\left(\lfloor x \rfloor - \sum_i \left\lfloor \frac{x}{p_i} \right\rfloor + \sum_{i<j} \left\lfloor \frac{x}{p_i p_j} \right\rfloor - \cdots \right) - 1 = \pi(x) - \pi(\sqrt x)
$$
The $-1$ adjusting for the fact the LHS counts $1$ among the "primes".
