Is there a way to calculate absurdly high powers?

4.8k Views Asked by At

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.

6

There are 6 best solutions below

6
On BEST ANSWER

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.

1
On

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.

2
On

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

7
On

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$.

7
On

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

0
On

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

Exponentiation by squaring is useful for this.