factorial of an integer