Advertisements

```
import sys
sys.setrecursionlimit(1000000000)
def F(n):
if n == 1:
return 1
if n > 1:
return n * F(n - 1)
print(F(2023)/F(2020))
```

When the recursion is increased with `setrecursionlimit`

, the following error is returned.

Process finished with exit code -1073741571 (0xC00000FD)

But without increasing the recursion, this code does not work.

How can I fix it?

### >Solution :

You can increase the recursion up to 2500 since your factorial is less than 2500:

```
import sys
sys.setrecursionlimit(2500)
def F(n):
if n == 1:
return 1
if n > 1:
return n * F(n - 1)
```

But, when you run above code you will get:

Link to doc: doc

So, you have to increase the limit by:

```
import sys
sys.set_int_max_str_digits(0)
```

Now, your code will run:

```
print(F(2023)/F(2020))
8266912626.0
```

Alternatively, there is another way;

you can use the built in factorial from math module. But, you have to increase the integer limit:

```
import sys
sys.set_int_max_str_digits(0)
from math import factorial as F
print(F(2023)/F(2020))
#8266912626.0
```