import java.math.*; public class BigPower { public static void main (String[] argv) { BigInteger X = new BigInteger ("3"); BigInteger Y = new BigInteger ("2"); BigInteger Z = power (X, Y); BigInteger Z2 = power2 (X, Y); System.out.println (X + "^" + Y + " = " + Z + " Z2=" + Z2); X = new BigInteger ("2"); Y = new BigInteger ("8"); Z = power (X, Y); Z2 = power2 (X, Y); System.out.println (X + "^" + Y + " = " + Z + " Z2=" + Z2); X = new BigInteger ("2"); Y = new BigInteger ("1000"); Z = power (X, Y); Z2 = power2 (X, Y); System.out.println (X + "^" + Y + " = " + Z + " Z2=" + Z2); } static BigInteger zero = new BigInteger ("0"); static BigInteger one = new BigInteger ("1"); static BigInteger power (BigInteger A, BigInteger B) { if ( B.equals(zero) ) { return new BigInteger ("1"); } BigInteger BMinus1 = B.subtract (one); BigInteger temp = power (A, BMinus1); BigInteger P = A.multiply (temp); return P; } }