#include <iostream>

using namespace std;

int factorial(int n);

int main()
{
   int n;
   
   cout << "Please enter a positive integer: ";
   cin >> n;
   
   cout << "The factorial of " << n << " is " << factorial(n) << endl;
   return 0;
}

int factorial(int n)
{
   int returnValue;
   cout << "Calling factorial(" << n << ")\n";
   if (n == 0)
      returnValue = 1;
   else
      returnValue =  n * factorial(n-1);
      
   cout << "factorial(" << n << ") is returning " << returnValue << endl;
   return returnValue;
}