So why did you change it to 1000? What "mistake" did that "fix"?Assumptions: Value of a number ``n" which factorial should be calculated of does not exceed 500.

All these changes only frustrate people. It is hard enough to solve problems and now we are suppose to (a) also predicate what fanciful changes will be made to the specification at some point in the future when solving the problem or (b) keep "fixing" all our solutions. I think the only "mistake" here is the fact that the problem specifications keep changing...