59
$\begingroup$

I've solved for it making a computer program, but was wondering there was a mathematical equation that you could use to solve for the nth prime?

4 Answers 4

57

No, there is no known formula that gives the nth prime, except artificial ones you can write that are basically equivalent to "the $n$th prime". But if you only want an approximation, the $n$th prime is roughly around $n \ln n$ (or more precisely, near the number $m$ such that $m/\ln m = n$) by the prime number theorem. In fact, we have the following asymptotic bound on the $n$th prime $p_n$:

$n \ln n + n(\ln\ln n - 1) < p_n < n \ln n + n \ln \ln n$ for $n\ge{}6$

You can sieve within this range if you want the $n$th prime. [Edit: There are better ideas than a sieve, see the answer by Charles.]

Entirely unrelated: if you want to see formulae that generate a lot of primes (not the $n$th prime) up to some extent, like the famous $f(n)=n^2-n+41$, look at the Wikipedia article formula for primes, or Mathworld for Prime Formulas.

  • 2
    It should be noted that this is derived from the [prime number theorem](http://en.wikipedia.org/wiki/Prime_number_theorem).2010-07-30
  • 0
    Right. I had omitted mentioning it, but thanks to your reminder I went and found a precise bound I hadn't previously seen. :-)2010-07-30
  • 0
    I don't know why the downvote, but a closely related question was just posted (http://math.stackexchange.com/questions/940338/the-myth-of-no-prime-formula) and perhaps it has gotten this topic some new attention. (I think your first sentence is a good summary conclusion, but someone else may disagree.)2014-09-22
  • 1
    How about Mill's formula? https://en.wikipedia.org/wiki/Mills%27_constant2016-05-27
  • 0
    @Ovi While interesting, that doesn't give the $n$th prime; it gives only a particular subsequence of primes (where moreover knowing anything about the constant or even the first generated prime depends on the Riemann hypothesis, and even then it seems the constant is calculated from the primes, rather than the primes being generated from the constant: the value of the constant is thus a "summary" which encodes the primes found.)2016-05-28
  • 0
    @ShreevatsaR Yeah unfortunately it doesn't give the $n^{th}$ prime, but I believe its existence has already been proved. The issue is that we don't really know how to calculate it, so the best we can do is to use the formula (given on the wiki page) $A \approx a(n)^{\frac {1}{3^n}}$. However if the Riemann Hypothesis is true, there is another way to calculate it. I'm not totally sure of this though, it is just my interpretation of Dr. James Grime's explanation of it in this Numberphile video https://www.youtube.com/watch?v=6ltrPVPEwfo2016-05-28
  • 0
    The lower bound is due to Dusart (1999); from where does the upper bound come from?2018-01-12
  • 0
    I have found it: the upper bound comes from Rosser (1941)2018-01-12
  • 0
    @JoseBrox Great, was about to answer myself with what I know: the reference given [on Wikipedia](https://en.wikipedia.org/w/index.php?title=Prime_number_theorem&oldid=818274665#cite_ref-26) is *Bach, Eric; Shallit, Jeffrey (1996). Algorithmic Number Theory. Foundations of Computing Series. 1. Cambridge: MIT Press. p. 233. ISBN 0-262-02405-5. MR 1406794* but of course the original source is probably older (what you found).2018-01-12
  • 0
    @ShreevatsaR Thanks. I've updated the Wikipedia with a reference to Rosser's paper.2018-01-12
  • 0
    As for one of the artificial ones you mention: For any $c>2$ one can show there are infinitely many $A$ such that $p_n = \left\lfloor c^{2n-1}(c^{(n-1)^2}A - \lfloor c^{(n-1)^2}A\rfloor)\right\rfloor$. For example for $c=10$ we can choose $A = 0.200300005\ldots = \sum \frac{p_n}{10^{n^2}} $ (or this number plus any integer). However this is useless in practice as it requires complete knowledge of all the $n$ first primes in order to compute the $n$th prime.2018-07-25
  • 0
    There are explicit formulas for the nth prime, most of these formulas use Wilson's theorem.2018-08-30
  • 0
    @Boots I mentioned *artificial ones you can write that are basically equivalent to "the nth prime"* — the point is that using a formula should not take *more work* than simply computing the nth prime directly: such a formula is not worth talking about.2018-08-30
27

Far better than sieving in the large range ShreevatsaR suggested (which, for the 10¹⁵th prime, has 10¹⁵ members and takes about 33 TB to store in compact form), take a good first guess like Riemann's R and use one of the advanced methods of computing pi(x) for that first guess. (If this is far off for some reason—it shouldn't be—estimate the distance to the proper point and calculate a new guess from there.) At this point, you can sieve the small distance, perhaps just 10⁸ or 10⁹, to the desired number.

This is about 100,000 times faster for numbers around the size I indicated. Even for numbers as small as 10 to 12 digits, this is faster if you don't have a precomputed table large enough to contain your answer.

  • 0
    Thanks. I've updated my answer to not recommend sieving.2010-09-09
  • 2
    @ShreevatsaR: Don't get me wrong -- your answer is far better than the naive method of stepping through numbers and testing them! I was just suggesting an improvement. :)2010-09-09
  • 0
    "At this point you can sieve the small distance, perhaps just 10^8 or 10^9, to the desired number." How would you recognize this number?2016-01-17
  • 0
    @Liviu: Suppose you want the millionth prime and you find an $x$ with 998,000 primes less than it. You just need to "count up" 2000 primes. The expected length needed is then about $2000\log x$, but you should probably add, say, 10% or so in case the primes don't cooperate.2016-01-18
  • 0
    @Charles I know the 1000000th prime because I know the 998000th prime because I know the 996000th prime ... because I know the 20th prime, that's 71. It seems easy now ... oh, wait a minute2016-01-21
  • 0
    @Liviu: Use a $\pi(x)$ algorithm to get a good guess and sieve from there. If for some reason your guess is very far off, take a second guess and sieve from that point. If you are currently at the 20th prime you shouldn't start sieving yet. :p2016-01-21
  • 3
    @Charles "your guess is very far off" ... how can I know that a prime is the prime I am searching for ... without counting all the primes until it?2016-01-22
  • 2
    @Liviu: Suppose you have a fast test for (1) whether a number is prime or not and (2) a fast test to find the number of primes less than or equal to a given number. If I claim that a number $p$ is the $n$th prime, all you have to do is check that $p$ is prime using (1) and check that $\pi(p)=n$ by (2). (1) is relatively easy, but (2) is hard. See http://mathworld.wolfram.com/PrimeCountingFunction.html for an overview on the latter. There are two classes of fast approaches to (2), analytic and combinatorial, and they are roughly tied at record sizes (at smaller sizes combinatorial is better).2016-01-22
25

There are formulas on Wikipedia, though they are messy. No polynomial $p(x)$ can output the $n$th prime for all $n$, as is explained in the first section of the article.

There is, however, a polynomial in 26 variables whose nonnegative values are precisely the primes. (This is fairly useless as far as computation is concerned.) This comes from the fact that the property of being a prime is decidable, and the theorem of Matiyasevich.

  • 0
    Note that this 26-variable polynomial isn't well suited to generate primes, as most of its codomain is negative.2010-08-07
  • 0
    I remember it was presented to us in the elementary course of number theory, and I think the teacher said that after much work they managed to reduce it to 22 variables.2010-09-11
  • 10
    This 26-variable polynomial still gives me the creeps. I find it very strange indeed.2011-06-07
11

No such formula is known, but there are a few that give impressive results. A famous one is Euler's: $$P(n) = n^2 − n + 41$$ Which yields a prime for every natural number lower than $41$, though not necessarily the $n$th prime.

See more here.