**Tell us what’s happening:**

Can anyone tell me how is this code working? What I do not understand is why and how the function goes down from the function(num) to the number if there is no iteration?

According to my logic, it should be displaying 1 and num * (num - 1) which if for example num is 5, then it should be 20.

**Your code so far**

```
function factorialize(num) {
if (num === 0 || num === 1) {
return 1;
}
return num * factorialize(num-1);
}
factorialize(5);
```

**Your browser information:**

Your Browser User Agent is: `Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.2988.0 Safari/537.36`

.

**Link to the challenge:**

https://www.freecodecamp.org/challenges/factorialize-a-number