### Recursive Factorial

Create a public class `Factorial`

that provides a single static method `factorial`

.
`factorial`

accepts a single `long`

and returns its factorial as a `long`

.
You can reject negative arguments and ones greater than 20 by throwing an `IllegalArgumentException`

.

You should submit a recursive solution. The factorial of 0 is 1, and this represents the base case. The factorial of n is n * the factorial of n - 1, and this represents the recursive step.