اینهم یه الگوریتم سرسعتر برای توان(البته برای توان های صحیح):

long square(long n){return n*n;}

long fastexp(long base, long power)
{
if(power==0)
return 1;
else if (power%2==0)
return square(fastexp(base,power/2));
else
return base*fastexp(base,power-1);
}