# Is there a way to calculate absurdly high powers? [closed]

Could it be at all possible to calculate, say, $2^{250000}$, which would obviously have to be written in standard notation? It seems impossible without running a program on a supercomputer to work it out.

## closed as unclear what you're asking by Alex M., tired, Bobson Dugnutt, Daniel W. Farlow, John BMar 8 '16 at 8:04

Please clarify your specific problem or add additional details to highlight exactly what you need. As it's currently written, it’s hard to tell exactly what you're asking. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

• You don't need a supercomputer, a not too ancient desktop or laptop can deal with that easily. If you want to do that by hand, it will take a while - especially the checking for calculation errors. – Daniel Fischer Mar 7 '16 at 16:23
• On any Unix computer, try echo '2^250000' |bc. My 3-year-old laptop ran it in 0.64 seconds. This isn't an "absurdly high" power at all. – Nate Eldredge Mar 7 '16 at 16:27
• On my phone computing $2^{2500000}$ takes a little less than 2 seconds. – Omar Antolín-Camarena Mar 7 '16 at 17:32
• Python running on my laptop takes under 0.1s (average of multiple runs using the timeit module) to run str(2**250000), which calculates the base-10 representation. 2**250000 on its own takes 20 nanoseconds, but that's a bit of a cheat since it's computing in base 2 and possibly takes a "shortcut". – Steve Jessop Mar 7 '16 at 17:43
• @SteveJessop I can determine the binary expansion of 2**250000 in under a second, too, even without a computer. – Federico Poloni Mar 7 '16 at 18:39

The basic idea is the following: If $k \in \mathbf N$ is even, say $k = 2m$ we have $$2^k = 2^m \cdot 2^m$$ if $k = 2m +1$ is odd, then $$2^k = 2^{2m} \cdot 2$$ That is, we need two routines, one for squaring a number and one for doubling a number (in standard notation). This is doable on almost every computer. Now we start with 2, doing the steps \begin{align*} 2 &\leadsto 2^2 \text{ squaring}\\ &\leadsto 2^3 \text{ doubling}\\ &\leadsto 2^6 \text{ squaring}\\ &\leadsto 2^7 \text{ doubling}\\ &\leadsto 2^{14} \text{ squaring}\\ &\leadsto 2^{15} \text{ doubling}\\ &\leadsto 2^{30} \text{ squaring}\\ &\leadsto 2^{60} \text{ squaring}\\ &\leadsto 2^{61} \text{ doubling}\\ &\leadsto 2^{122} \text{ squaring}\\ &\leadsto 2^{244} \text{ squaring}\\ &\leadsto 2^{488} \text{ squaring}\\ &\leadsto 2^{976} \text{ squaring}\\ &\leadsto 2^{1952} \text{ squaring}\\ &\leadsto 2^{1953} \text{ doubling}\\ &\leadsto 2^{3906} \text{ squaring}\\ &\leadsto 2^{7812} \text{ squaring}\\ &\leadsto 2^{15624} \text{ squaring}\\ &\leadsto 2^{15625} \text{ doubling}\\ &\leadsto 2^{31250} \text{ squaring}\\ &\leadsto 2^{62500} \text{ squaring}\\ &\leadsto 2^{125000} \text{ squaring}\\ &\leadsto 2^{250000} \text{ squaring}\\ \end{align*} That is, this can be done in "not so many" multiplications.

• You better do these calculations in a base 10 representation, otherwise it can be done somewhat easier ;) – Carsten S Mar 7 '16 at 19:02
• What's so beautiful about this is I can look at your answer and tell you the binary representation of 250000 from this! – corsiKa Mar 7 '16 at 19:02
• Fun fact: finding the optimal way of squaring & multiplying to obtain the answer is an NP-complete problem (I believe I've read this in TAOCP). However even the naive scheme usually only performs very very few multiplications or squarings more than the optimum so... – Bakuriu Mar 7 '16 at 19:41
• The discussion to which @Bakuriu refers appears in Knuth Art of Computer Programming section 4.6.3, “Evaluation of Powers”, pp. 463–481. However, I do not see any discussion of the NP-completeness of the problem. – MJD Mar 8 '16 at 4:53
• when you do this algorithm, do you start with the power that you want to end up with, then halve or subtract, or start from 1 (or 0) then add and double? – costrom Mar 25 '16 at 19:08

When I was young ( not so many years ago) there was not home computers and I was trained to do such kind of calculations using the ''logarithm table'', a little book from which it was possible to find the logarithms (in base $10$) of numbers.

This was the way to make calculations before computers! And it also works today!

So for your calculation we can do:

$$\log_{10}\left(2^{250000} \right)=250000 \times \log_{10} 2$$

From my tables I found $\log_{10} 2=0.3010299$ (clearly the problem is the precision that is limited by the number of digits in the tables, but for this purpose $7$ digits seems sufficient).

So, with a simple multiplication we have:

$$2^{250000} \approx 10^{75257.475}=\left(10^{10000}\right)^{7.5257475}$$ Or, as suggested by @mathmandan (thanks!): $$2^{250000} \approx 10^{75257.475}=10^{75257}\times 10^{0.475}$$ and my ''magic tables'' say that $10^{0.475}\approx 2.9853826$.

• Yep. Nice anecdote with logarithm-tables too. I actually found such a book in a library once. – mathreadler Mar 7 '16 at 17:15
• Um, $75257.475\not=10000+7.525475$.... – Barry Cipra Mar 7 '16 at 17:25
• Or if you'd like, $(10^{75257}) * (10^{0.475})$. So roughly $3 * 10^{75257}$, which would be a $3$ followed by $75257$ zeros. – mathmandan Mar 7 '16 at 17:54
• Calculators were not in use when I was learning trigonometry and precalculus (1973-74), at least they were sufficiently rare that no one at my school had a calculator and I had never seen one, so all our classroom calculations were by hand, using square root tables and logarithm tables at the back of our high school textbooks. Actually, we only needed logarithm tables for trigonometry (solving triangles), as none of the other stuff required any extensive calculations. We also frequently used linear interpolation to get more accurate values. On tests we were told whether we had to interpolate. – Dave L. Renfro Mar 7 '16 at 22:19
• @mathreadler:, Yep, still have mine downstairs also, right beside my two ivory slide rules and Ritchie;s First Steps in Latin. – Pieter Geerkens Mar 8 '16 at 3:35

You can get pretty good approximations, but the actual calculation is difficult. For instance $$2^{250000} = (2^{10})^{25000} = (1024)^{25000} \approx (10^3)^{25000} \approx 10^{75000}$$ Which you can write out pretty easily. This is a fairly decent estimate (Wolfram gives $10^{75257.49891599528}$) You could also write the number in binary if that suits you, which is a $1$ followed by $250000$ $0$'s.

• Using that $\log_{10}2 \approx 0.30103$, we get $2^{250000} \approx 10^{75257.5}$. Using a better approximation for $\log_{10}2$ gives what WA gave. – lhf Mar 7 '16 at 22:14

As big numbers go, 2^250000 is actually small. A simple program in Ruby calculates it in a few tenths of a second:

puts 2**250000

Run it with ruby -e in a command prompt, if you have Ruby. Takes more time to display the result than to calculate it.

For really big numbers, please see

• As big numbers go, any given number is small. – Asaf Karagila Mar 7 '16 at 22:00
• @AsafKaragila: Is A(g64,g64) small? A = Acermann function, g64 = Graham's number. – Joshua Mar 7 '16 at 22:48
• @Joshua: The XKCD number is only large compared to finitely many integers, but it is small compared to infinitely many. As the old saying goes, most numbers are larger. – Asaf Karagila Mar 7 '16 at 22:50
• Graham's number will be considered by nearly everyone as "large", although much much much larger numbers have been defined and named. And the numbers shown is Saibian's page are definitely large. Just because there are infinite many numbers, and infinite numbers are larger then every given number, I do not see any reason to consider every number to be "small". – Peter Mar 19 '17 at 16:28
• @AsafKaragila On the contrary, one might argue that almost any given number is large. – Simply Beautiful Art Jun 18 '17 at 22:56

Yes. Logarithm and multiplication. Use the log law $$\log(a^b) = b\log(a)$$and your exponentiation becomes $$\exp(b\log(a))$$

• You would preferably use a basis which is the one you want to write the answer in. – mathreadler Mar 7 '16 at 17:12
• See Emilios answer with log tables and base 10. It has better explanations than mine. – mathreadler Mar 7 '16 at 17:17

It's possible and easy. I've put the result at http://pastebin.com/CcT5yWVS.

Exponentiation by squaring is useful for this.