It calculates x such that `N \equiv x \mod P`
What is "modulo" ?
The modulo is the remainder of the Euclidean division. 17 modulo 3 is equal to 2 because the remainder of the euclidean division of 17 by 3 is equal to 2. We use this notation,
`17 \equiv 2 \mod 3`
To generalize to two given integers N and P, N modulo P is the remainder of the Euclidean division of N by P.
Modulo is used in modular arithmetic, a branch of number theory in which we focus on the remainder of the Euclidean division of a number by other numbers.
What is congruence ?
Two numbers are congruent "modulo n" if they have the same remainder of the Euclidean division by n.
Another way to state that is that their difference is a multiple of n.
a, b and n are three integers, a is congruent to b "modulo n" will be written,
a \equiv b \mod n`
In the above example, 17 is congruent to 2 modulo 3.
How to calculate "a modulo n"?
Using the above definition, to calculate a modulo n, we compute the remainder of the Euclidean division of a by n.
Example: how to calculate 126 modulo 7 ?
We know that 126 ÷ 7 = 18 remainder 0 therefore,
`126 \equiv 0 \mod 7`
This python program calculates a modulo b, a and b are two integers.
The operator % is the remainder of the Euclidean division.
def modulo(a, b): return a%b