import java.math.BigInteger;

// This appears in Core Web Programming from
// Prentice Hall Publishers, and may be freely used
// or adapted. 1997 Marty Hall, hall@apl.jhu.edu.

/** Computes an exact factorial using a BigInteger.
 *  Java 1.1 only.
 */

public class Factorial {
  public static void main(String[] args) {
    for(int i=1; i<=512; i*=2)
      System.out.println(i + "!=" + factorial(i));
  }

  public static BigInteger factorial(int n) {
    if (n <= 1)
      return(new BigInteger("1"));
    else {
      BigInteger bigN =
        new BigInteger(String.valueOf(n));
      return(bigN.multiply(factorial(n - 1)));
    }
  }
}

