Returns factorial.
Valid range is 0..20 (fits in signed 64-bit).
| n |
non-negative integer in range 0..20. |
|
Result.ok(factorial value) or Result.error(MathError.INVALID_ARGUMENT) when n is outside [0, 20]. |