#include <iostream>
#include <cstdlib>
#include <cmath>

double fac(int n)
{
	std::cerr << "n: " << n << std::endl;
	if (n==0)
		return 1;
	else {
		double f=fac(n-1);
		std::cerr << "multiplicando n: " << n <<
						" por f(n-1):" << f << std::endl;
		return n*f;
	}
}

int main(int argc, char* argv[])
{
	int n= atoi(argv[1]);
	std::cout << n << "! =" << fac(n) << std::endl; 
	std::cout << "gamma(" << n << "-1)=" << tgamma(n+1.0) << std::endl;
	return EXIT_SUCCESS;
}
