Vamos a empezar con algunos aritmética modular. Sé que usted no quiere una respuesta de forma explícita el uso de cualquier modular engaño, pero a menudo una respuesta puede ocultar el medio que utiliza para conseguirlo.
El objetivo es calcular $a^b\bmod 10^n$, que como se ha señalado es igual a $a^b-10^n\left\lfloor^b10^{-n}\right\rfloor$, a pesar de que la fórmula es claramente inútil si $a$ o, especialmente, $b$ son incluso moderadamente grande. La identidad $x\bmod y=x-y\lfloor x/y\rfloor$ vendrá en la mano aunque. Vamos $m=10^n$ ser la base para el mod de la operación.
La forma en que se puede proceder es mediante la reducción de $a$ y $b$ tanto como sea posible, usando aritmética modular. La más fácil es $un$: desde la aritmética modular conserva los productos, $a^b\equiv (a\bmod m)^b$. Por lo tanto, sólo necesitamos considerar $a\le m$.
El más útil de la fórmula en este contexto es el teorema de Euler $a^{\phi(m)}\equiv 1\pmod m$, donde $\phi(m)$ es la totient función. En general, $\phi(m)$ es bastante difícil de calcular, pero por un golpe de suerte nos toca a saber $m=10^n$, entonces sabemos que la descomposición en factores primos, y por la fórmula
$$\phi(m)=\phi(p_1^{e_1}\dots p_n^{e_n})=m\left(1-\frac1p_1\right)\dots\left(1-\frac1p_n\right),$$
nos encontramos con que $\phi(10^n)=10^n(1-1/2)(1-1/5)=4\cdot 10^{n-1}$.
Por desgracia, el teorema de Euler viene con la advertencia de que $a$ y $m$ debe ser coprime, por lo que no funciona en todos los casos como usted desea. Un mejor resultado del teorema de Carmichael, que es el mismo que el de Euler, pero con una menor función del exponente: $a^{\lambda(m)}\equiv 1\pmod m$, donde $\lambda(10^n)=2\cdot 10^{n-1}$. Además, $a^{\lambda(m)+b}\equiv a^b\pmod m$ para cualquier entero $a<m$ y $b\ge k$, donde $k$ es el mayor exponente en la factorización prima de $a$. Ahora queremos una fórmula general que no necesita ningún tipo de factorización, así que vamos-límite superior $k$. El peor de los casos es si $a$ es una de alta potencia de 2 $$ menos de $10^n$. En este caso, $a=2^k<2^{n\log_2 10}=10^n$, entonces $k<n\log_2 10$. (Tenga en cuenta que $n\log_2 10$ no es un entero, pero con nuestro piso truco para el cálculo de $\bmod$ esto no será un problema. Es bueno el uso de $\lfloor n\log_2 10\rfloor$ en su lugar.)
Estamos listos para poner todo junto ahora. Tenemos $a^b\bmod m=c^d\bmod m$ mientras $a\bmod m=c\bmod m$ y $b\bmod\lambda(m)=d\bmod\lambda(m)$ y $b,d\ge n\log_2 10$. (Estoy suponiendo que $a$ y $b$ son "grandes", y estamos tratando de reducir a proporciones razonables. Si $b<n\log_2 10$, a continuación, sólo tiene que enchufar el maldita cosa en su calculadora.) Por lo tanto, las decisiones óptimas que satisfagan los criterios son
$$c=a\bmod 10^n=a-10^n\left\lfloor a10^{-n}\right\rfloor,\quad\rm y$$
$$\begin{align}
d&=((b-n\log_2 10)\bmod2\cdot 10^{n-1})+n\log_2 10 \\
&=b-2\cdot 10^{n-1}\left\lfloor\frac{b-n\log_2 10}{2\cdot 10^{n-1}}\right\rfloor, \end{align}$$
y terminamos por el taponamiento de los a $a^b\bmod 10^n=c^d-\left\lfloor c^d10^{-n}\right\rfloor$.
Para el caso en que el OP, $a=b=2012$ y $n=2$. Entonces $c=12$, $\phi(10^n)=40$, $\lambda(10^n)=20$, $n\log_2 10=6.64\dots$, $\lfloor n\log_2 10\rfloor=6$ y $d=12$, entonces $$2012^{2012}\bmod 100=12^{12}\bmod 100=8916100448256\bmod 100=56.$$
Los números todavía son un poco grandes, pero sin duda dentro de la esfera de las calculadoras científicas. El problema es, por supuesto, mucho más manejable si se divide el exponente en la mitad. Este es el paso uno de la exponenciación por repetir la cuadratura (pero yo reclamo a ser el de evitar la restricción en el OP, ya que no estoy abogando por todo el proceso iterativo ;) ). Mejor aún, podemos dividir el exponente en $q$ trozos iguales (más en la elección de $q$ en un poco). La forma en que se va es (después de haber reducido $a$ y $b$ a $c$ y $d$ as arriba) para calcular $c^{qr+s}\bmod m=(c^r\bmod m)^cc^s\bmod m$, donde $d=qr+s$ es el cociente y el resto de $d$ en la división por $q$, es decir, $r=\lfloor d/q\rfloor$ y $s=d\bmod q$. Ahora el resultado final es
$$a^b\bmod 10^n=c^{\lfloor d/q\rfloor}\bmod 10^n)^cc^{d\:\bmod\:q}\bmod 10^n,$$
donde, como antes de que $x\bmod de$ y es la abreviatura de $x-y\lfloor x/y\rfloor$. El uso de esta fórmula en lugar de eso, los números originales, y la elección de $q=3$, obtenemos
$$\begin{align}
a^b\bmod 10^n&=(12^4\bmod 100)^312^0\bmod 100\\
Y=(20736\bmod 100)^312^0\bmod 100=46656\bmod 100=56,\end{align}$$
el cual está en el rango de 8 dígitos calculadora de bolsillo.
Pero, ¿de dónde $p$? Los dos grandes números en nuestro cálculo es de $c^{\lfloor d/q\rfloor}=20736=h$ y $(h\bmod 100)^{d\:\bmod\:q}=46656$. El más grande $q$ es, el más pequeño es el primer número y el más grande de la segunda. En un áspero heurística, tanto $c$ y $h\bmod 100$ son grandes números mod $100$, por lo que debe ser aproximadamente de 50, si yo pretendo que los números están uniformemente distribuidos. (No leer demasiado en esta estimación.) Por lo tanto una buena opción de $p$ sería aproximadamente de igualar los exponentes, es decir, $q=\lfloor\sqrt d\rfloor$ (que es igual a $3$ en nuestro ejemplo).