Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm trying to understand the intuitions behind working with very large numbers. Specifically, I'm talking about numbers of the form $a^b$ where $a > 10,000$ and $b > 10,000$, and in general $a$ and $b$ are small, but $a^b$ has millions of digits. Obviously, computing the number is infeasible, but I still would like to determine things about them.

I am particularly interested in ideas or rules about evaluating which of two large numbers is larger. I believe I want to use logarithms somehow, but they've always confused me a little bit, so I can't quite see where to go from there.

More generally, I'd love to hear more generic discussion of how one can work with such large numbers easily, sacrificing precision, but not accuracy.

share|cite|improve this question
up vote 17 down vote accepted

Since logarithms are monotonically increasing, you can determine if $$a^b > c^d$$ by instead checking if $$\log(a^b) > \log(c^d)$$ which can be rewritten (using basic properties of logarithms) as $$b\log(a) > d\log(c)$$ This results in the comparison of two numbers on the order of those given in the input (that is, both numbers will be within an order of magnitude or so of $a,b,c,d$), which is definitely feasible on a computer.

You can also use logs to calculate other properties, as long as you remember to convert your solution back to the original numbers (by means of an exponential) when you're done. For example, to compute whether $${a_1}^{b_1}{a_2}^{b_2} > {c_1}^{d_1}{c_2}^{d_2}$$, you can take the log of both sides to get \begin{align} \log({a_1}^{b_1}{a_2}^{b_2}) &> \log({c_1}^{d_1}{c_2}^{d_2}) \\ \log({a_1}^{b_1}) + \log({a_2}^{b_2}) &> \log({c_1}^{d_1}) + log({c_2}^{d_2}) \\ b_1\log(a_1) + b_2\log(a_2) &> d_1\log(c_1) + d_2\log(c_2) \\ \end{align}

which is again computationally feasible.

share|cite|improve this answer
Thank you! Exactly what I wanted. – dimo414 Oct 29 '10 at 20:46
Logarithms are also essentially the only way to compare between quantities defined by towers of exponents. Quick: which is bigger, 100^100^100 or 5^5^5^5? – Qiaochu Yuan Oct 29 '10 at 21:37

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.