The most efficient method I currently know of to find the first digits of $a^b$ if a is not a power of 10 is the logarithmic multiplication method (that is, calculating $b*log_{10} a$ and extracting the fractional part).

However, the person who answered my first question about first digits of extremely large powers mentioned the idea of using a spigot algorithm to extract binary digits of base-10 logarithms (and possibly in other bases?), but is this method really efficient enough to calculate initial digits of integer powers larger than $10^{10^{10^9}}$ or so (which is about the limit of what is attainable using the logarithmic multiplication method)?

For example, finding first digits of $2^{2^{2^{32}}}$ (i. e. $31592126933723384300418482232511...$) would be equivalent to finding the binary representation of $log_{10} 2$ (not $ln 2$) starting at the 4,294,967,297th bit. Of course, I used the logarithmic multiplication method to calculate those digits, but that took nearly 5 gigabytes of my computer's memory.

  • $\begingroup$ When you say "first digit" do you mean the leading, or most significant digit (which is how I interpret it, but does not require such accuracy) or the least significant digit (the value modulo $10$)? $\endgroup$ Dec 24, 2019 at 15:06
  • $\begingroup$ By the first digits, I obviously mean the most significant (that is, leading) digits. The last digits can be easily calculated using modular exponentiation. $\endgroup$
    – Allam A.
    Dec 24, 2019 at 15:42


You must log in to answer this question.

Browse other questions tagged .