/* Calcul de n! par methodes recursive         */
/* et sequentielle                             */

public class FactorielEnConsole {

/////////////////////////////////////////////////

/* Calcul de n! par methode recursive          */

  static long factoriel(int n) {
    long res;
    if ( n == 0 ) {
      res = 1; }
      else {
      res = factoriel(n-1)*n; }
    return res;
  }

/* Calcul de n! par methode sequentielle       */

  static long fact(int n) {
    long res = 1;
    if ( n > 1 ) {
      for ( int i = 2 ; i <= n ; i++ ) {
        res = res*i; } }
    return res;
  }

/////////////////////////////////////////////////

/* Programme principal                         */

  public static void main(String [] args) {
    Console.setTitle("Factoriel");
    int n;
    long factn;
    Console.afficher("Valeur ? ");
    n = Console.saisirInt();
    factn = fact(n);
    Console.afficherln("Sequentiel");
    Console.afficherln(n,"! = ",factn);
    factn = factoriel(n);
    Console.afficherln("Recursif");
    Console.afficherln(n,"! = ",factn);
  }
}