public class Factorial_2_WithLongs {
   public static final int MAX = 21; 
   
   /* Return the factorial of n */
   public static long factorial (int n) {   
      long product = 1;                     
      for (int i=2; i<=n; i++)
         product = product * i;
      return product;
   }
   
   public static void main(String[] args) {
      for (int i=0; i <= MAX; i++) 
         System.out.println(i + "! = " + factorial(i) );
   }
}