W = 1;
forever {
if (n % 2 != 0)
w *= x;
n /= 2;
if (n == 0)
break;
x *= x;
}