import java.math.BigInteger;

public class Factorial_3_BigInteger {
   public static final int MAX = 30; 
   
   /* Return the factorial of n */
   public static BigInteger factorial(int n) {
      BigInteger prod = BigInteger.ONE;
      for (int i=1; i<=n; i++)
        prod = prod.multiply(new BigInteger(i +""));
      return prod;
    }
   
   public static void main(String[] args) {
      for (int i=0; i <= MAX; i++) 
         System.out.println(i + "! = " + factorial(i) );
   }
}