This answer is simpler version of [Colin McQuillan's answer to the same question](https://cstheory.stackexchange.com/a/2085). 

---

Suppose the language is regular. The pumping lemma gives strings $u,v,w$ such that every string $x_n=u v^n w$ is
a power of $2$. 

Interpreting these strings as numbers and writing $d$ and $e$ for the lengths of $v$ and $w$ respectively, we have
$$
x_n = u 3^{dn+e} + v 3^{d(n-1)+e} + v 3^{d(n-2)+e} + \dots + v 3^e + w$$
So,
$$x_{n+1}-3^dx_n = v3^e + w - 3^dw$$
Let the $c$ be the constant on the right-hand side, i.e., $c=v3^e + w - 3^dw$, we have
$$\frac{x_{n+1}}{x_n} = 3^d + \frac{c}{x_n} = 3^d +o(1)\ \text{ as }n\to\infty$$

Since the left-hand side, as a quotient of two powers of 2, must always be an integer, the right-hand side is always an integer as well. Since the right-hand side goes to $3^d$, it must be $3^d$ eventually. Or we can say, once the term $o(1)$ is smaller than 1, it must be 0. However, the left-hand side, as a power of 2 that is greater than 1, can never be a power of 3. This is a contradiction.

---

Exercise. (A minute or two) Check that the above proof works the same if you replace 3 by any positive integer that is not a power of 2.