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.
Is there a way to calculate absurdly high powers?
4.8k Views Asked by Mathime https://math.techqa.club/user/mathime/detail AtThere are 6 best solutions below
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.
Yes. Logarithm and multiplication. Use the log law $$\log(a^b) = b\log(a)$$and your exponentiation becomes $$\exp(b\log(a))$$
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$.
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
It's possible and easy. I've put the result at http://pastebin.com/CcT5yWVS.
Exponentiation by squaring is useful for this.
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.