class Exp { /* Computes a^n fast. */ static long exp(int a, int n) { if (n == 0) return 1; // base case if (n % 2 == 1) // n is odd return exp(a, n-1) * a; else // n is even return exp(a*a, n/2); } public static void main(String[] args) { int a = 3; int n = 27164512; System.out.printf("exp(%d, %d) = %d%n", a, n, exp(a, n)); } }