# How to perform modulo with negative values in Python?

• Difficulty Level : Basic
• Last Updated : 05 Aug, 2021

Taking modulo of a negative number is a bit more complex mathematics which is done behind the program of Python. If we don’t understand the mathematics behind the modulo of negative number than it will become a huge blender.

Mathematics behind the negative modulo :

Let’s Consider an example, where we want to find the -5mod4 i.e. -5%4. You all must be wondering that the answer will be according to the below rule –

```-5/4 = 1.25
and
math.floor(-1.25) = -2```

But this is not the answer we get, when we’ll run the above code we’ll get the answer as 3. This is because Python’s modulo operator (%) always return a number having the same sign as the denominator. What happens behind the scene is that Python applies the distribute law of Modulo operator which is –

`(a+b)mod n = [(a mod n)+(b mod n)]mod n`

To apply this math Python break the given statement as –

`-5%4 = (-2*4 + 3) % 4 = 3`

This was done so that the (-2*4)%4 will give the answer as 0 (as we are always getting a multiple of divisor as our first number) and the overall result will be 3. Let’s see more examples for better understanding.

Examples:

-3 % 7 = ( -1*7 + 4 ) % 7 = 4
-5 % 2 = (-3*2 + 1) % 2 = 1

Example #1 :
In this example we can see that by using this mathematics, we are able to perform and understand the negative modulo.

## Python3

 `# Using negative modulo``res1 ``=` `-``5` `%` `4``res2 ``=` `((``-``2``*``4``) ``+` `3``) ``%` `4` `print``(res1)``print``(res2)`

Output :

```3
3```

Example #2 :

## Python3

 `# Using negative modulo``res1 ``=` `-``3` `%` `7``res2 ``=` `-` `12` `%` `4` `print``(res1)``print``(res2)`

Output :

```4
0```
My Personal Notes arrow_drop_up