# Can spigot algorithms be used to find first digits of large powers?

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.

• 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$)? Dec 24, 2019 at 15:06
• By the first digits, I obviously mean the most significant (that is, leading) digits. The last digits can be easily calculated using modular exponentiation. Dec 24, 2019 at 15:42