Solución. El truco está en probar que existe $n\in\mathbb{N}$ tal que los últimos $k+1$ dígitos de $p^n$ son $0\stackrel{(k)}{\ldots}01$, o lo que es lo mismo tal que $p^n\equiv 1 (\mathrm{mod}\ 10^{k+1})$. Usando el teorema de Euler y el hecho de que $p$ y $10^{k+1}$ son primos entre sí (ya que $p$ es primo distinto de $2$ y $5$), bastará tomar $n=\varphi(10^{k+1})$, siendo $\varphi$ la función de Euler.
Nota. Para $p=3$ y, más general, para cualquier natural $p$ (no necesariamente primo) tal que $\mathrm{mcd}(p,10)=1$ la demostración es la misma.