2018-09-30 23:01:58 +01:00
---
id: a302f7aae1aa3152a5b413bc
title: Factorialize a Number
isRequired: true
challengeType: 5
---
## Description
< section id = 'description' >
Return the factorial of the provided integer.
If the integer is represented with the letter n, a factorial is the product of all positive integers less than or equal to n.
Factorials are often represented with the shorthand notation < code > n!< / code >
For example: < code > 5! = 1 * 2 * 3 * 4 * 5 = 120</ code >
Only integers greater than or equal to zero will be supplied to the function.
Remember to use < a href = "http://forum.freecodecamp.org/t/how-to-get-help-when-you-are-stuck/19514" target = "_blank" > Read-Search-Ask< / a > if you get stuck. Write your own code.
< / section >
## Instructions
< section id = 'instructions' >
< / section >
## Tests
< section id = 'tests' >
```yml
- text: < code > factorialize(5)</ code > should return a number.
2018-10-02 15:02:53 +01:00
testString: 'assert(typeof factorialize(5) === ''number'', ''< code > factorialize(5)< / code > should return a number.'');'
2018-09-30 23:01:58 +01:00
- text: < code > factorialize(5)</ code > should return 120.
2018-10-02 15:02:53 +01:00
testString: 'assert(factorialize(5) === 120, ''< code > factorialize(5)< / code > should return 120.'');'
2018-09-30 23:01:58 +01:00
- text: < code > factorialize(10)</ code > should return 3628800.
2018-10-02 15:02:53 +01:00
testString: 'assert(factorialize(10) === 3628800, ''< code > factorialize(10)< / code > should return 3628800.'');'
2018-09-30 23:01:58 +01:00
- text: < code > factorialize(20)</ code > should return 2432902008176640000.
2018-10-02 15:02:53 +01:00
testString: 'assert(factorialize(20) === 2432902008176640000, ''< code > factorialize(20)< / code > should return 2432902008176640000.'');'
2018-09-30 23:01:58 +01:00
- text: < code > factorialize(0)</ code > should return 1.
2018-10-02 15:02:53 +01:00
testString: 'assert(factorialize(0) === 1, ''< code > factorialize(0)< / code > should return 1.'');'
2018-09-30 23:01:58 +01:00
```
< / section >
## Challenge Seed
< section id = 'challengeSeed' >
< div id = 'js-seed' >
```js
function factorialize(num) {
return num;
}
factorialize(5);
```
< / div >
< / section >
## Solution
< section id = 'solution' >
```js
function factorialize(num) {
return num < 1 ? 1 : num * factorialize ( num - 1 ) ;
}
factorialize(5);
```
< / section >