import java.io.PrintWriter;
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Factorial
{
  public static void main(String[] args)
    throws Exception
  {
    BufferedReader in = 
      new BufferedReader(new InputStreamReader(System.in));
    PrintWriter out = new PrintWriter(System.out, true);
 

    out.print("Please enter a number: "); out.flush();
    try {
      int n = Integer.parseInt(in.readLine());
      printFactorialExpression(out, n);
      out.print(" = ");
      out.println(factorial(n));
    }
    catch (Exception e){
      out.println("Sorry,that is not a number.");
    }//catch

    System.exit(0); // Only end program in main()
	 
  } // main(String[])

 public static void printFactorialExpression(PrintWriter out, int n) {
   if (n == 1) {
     out.print(1); 
   } 
   else {
     out.print (n + " * ") ;
     printFactorialExpression(out, n-1);
   }
  } // printFactorialExpression(PrintWriter, int)

  public static long factorial(int n) {
    if (n == 1) {
      return 1;
    }
    else {
      return n * factorial(n-1);
    }
  } // factorial(int)
} // class Factorial



