---
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
tests:
  - text: <code>factorialize(5)</code> should return a number.
    testString: assert(typeof factorialize(5) === 'number', '<code>factorialize(5)</code> should return a number.');
  - text: <code>factorialize(5)</code> should return 120.
    testString: assert(factorialize(5) === 120, '<code>factorialize(5)</code> should return 120.');
  - text: <code>factorialize(10)</code> should return 3628800.
    testString: assert(factorialize(10) === 3628800, '<code>factorialize(10)</code> should return 3628800.');
  - text: <code>factorialize(20)</code> should return 2432902008176640000.
    testString: assert(factorialize(20) === 2432902008176640000, '<code>factorialize(20)</code> should return 2432902008176640000.');
  - text: <code>factorialize(0)</code> should return 1.
    testString: assert(factorialize(0) === 1, '<code>factorialize(0)</code> should return 1.');

```

</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>
