// Programación en C++ para Ingenieros, Ed. Thomson Paraninfo, 2006
// Capítulo 5: Subprogramas: Acciones y funciones


#include <iostream>

using namespace std;

long factorial(unsigned int N);


int main(void)
{
      unsigned int N;

      cout << "Entra un natural: ";
      cin >> N;

      cout << "El factorial de " << N;
      cout << " es " << factorial(N) << endl;

      return 0;
}


long factorial(unsigned int N)
{
      if (N < 2)
            return 1;

      long resu = N;

      while (N > 1)
      {
            resu *= --N;
      }

      return resu;
}