//
// example of recursion:
//
// 	function to compute factorial
//
// main (test) program repeatedly prompts for input
//
#include <iostream.h>

// precondition:  n > 0
// postcondition:  returns n factorial
int factorial(const int n);

// ---- main program ----

int main()
{
	int n;
	char prompt[] = "Enter a positive integer, or ctrl-D to end:\n";
	cout << prompt;
	while (cin >> n)
	{
		if (n <= 0)
			cout << "Number must be positive!\n";
		else
			cout << "factorial(" << n << ") = " << 
				factorial(n) << endl;
		cout << prompt;
	}
	return 0 ;
}

// ---- function definition ----

int factorial(const int n) 
{
	if (n == 1)
		return 1;
	else
		return n * factorial(n-1);
}