--- title: Factorial id: 597b2b2a2702b44414742771 challengeType: 5 --- ## Description
Write a function to return the factorial of a number. Factorial of a number is given by:
n! = n * (n-1) * (n-2) * ..... * 1
For example: Note: 0! = 1
## Instructions
## Tests
```yml tests: - text: factorial is a function. testString: assert(typeof factorial === 'function', 'factorial is a function.'); - text: factorial(2) should return a number. testString: assert(typeof factorial(2) === 'number', 'factorial(2) should return a number.'); - text: factorial(3) should return 6. testString: assert.equal(factorial(3),results[0],"factorial(3) should return 6."); - text: factorial(3) should return 120. testString: assert.equal(factorial(5),results[1],"factorial(3) should return 120."); - text: factorial(3) should return 3,628,800. testString: assert.equal(factorial(10),results[2],"factorial(3) should return 3,628,800."); ```
## Challenge Seed
```js function factorial(n) { // Good luck! } ```
### After Test
```js const results=[6,120,3628800]; ```
## Solution
```js function factorial(n) { let sum = 1; while (n > 1) { sum *= n; n--; } return sum; } ```