Modular Exponentiation. Compute x^n mod m
// Modular Exponentiation
// Compute x^n mod m
int modexp(int x, int n, int m) {
if (n == 0) return 1;
if (n & 1) return ((x % m) * modexp(x, n - 1, m)) % m;
int y = modexp(x, n / 2, m);
return (y * y) % m;
}