Videos
I have a test tomorrow, in the test one of the questions will be to seperate a number from a 3 digit number, say I have 641, I need to know how to print out 6,4 and 1 seperately.
What the hell do I do ? The teacher is so bad I couldn't understand a word she said and neither did my class, we already complained about her but this isn't the issue, the issue is that I have no easy answers on the internet for what the modulo is.
Why does doing (n/100)%10; print out the hundred digit ? I have no idea how this works, please go easy on me.
(This explanation is only for positive numbers since it depends on the language otherwise)
Definition
The modulo operation returns the remainder or signed remainder of a division, after one number is divided by another, the latter being called the modulus of the operation. (source: wikipedia)
For instance, 9 divided by 4 equals 2 but it remains 1. Here, 9 / 4 = 2 and 9 % 4 = 1.

Image source: Wikimedia
In your example: 5 divided by 7 gives 0 but it remains 5 (5 % 7 == 5).
Calculation
The modulo operation can be calculated using this equation:
a % b = a - floor(a / b) * b
floor(a / b)represents the number of times you can divideabybfloor(a / b) * bis the amount that was successfully shared entirely- The total (
a) minus what was shared equals the remainder of the division
Applied to the last example, this gives:
5 % 7 = 5 - floor(5 / 7) * 7 = 5
Modular Arithmetic
That said, your intuition was that it could be -2 and not 5. Actually, in modular arithmetic, -2 = 5 (mod 7) because it exists k in Z such that 7k - 2 = 5.
You may not have learned modular arithmetic, but you have probably used angles and know that -90Β° is the same as 270Β° because it is modulo 360. It's similar, it wraps! So take a circle, and say that its perimeter is 7. Then you read where is 5. And if you try with 10, it should be at 3 because 10 % 7 is 3.
Two Steps Solution.
Some of the answers here are complicated for me to understand. I will try to add one more answer in an attempt to simplify the way how to look at this.
Short Answer:
Example 1:
7 % 5 = 2Each person should get one pizza slice.
Divide 7 slices on 5 people and every one of the 5 people will get one pizza slice and we will end up with 2 slices (remaining). 7 % 5 equals 2 is because 7 is larger than 5.
Example 2:
5 % 7 = 5Each person should get one pizza slice
It gives 5 because 5 is less than 7. So by definition, you cannot divide whole 5items on 7 people. So the division doesn't take place at all and you end up with the same amount you started with which is 5.
Programmatic Answer:
The process is basically to ask two questions:
Example A: (7 % 5)
(Q.1) What number to multiply 5 in order to get 7?
Two Conditions: Multiplier starts from `0`. Output result should not exceed `7`.
Let's try:
Multiplier is zero 0 so, 0 x 5 = 0
Still, we are short so we add one (+1) to multiplier.
1 so, 1 x 5 = 5
We did not get 7 yet, so we add one (+1).
2 so, 2 x 5 = 10
Now we exceeded 7. So 2 is not the correct multiplier.
Let's go back one step (where we used 1) and hold in mind the result which is5. Number 5 is the key here.
(Q.2) How much do we need to add to the 5 (the number we just got from step 1) to get 7?
We deduct the two numbers: 7-5 = 2.
So the answer for: 7 % 5 is 2;
Example B: (5 % 7)
1- What number we use to multiply 7 in order to get 5?
Two Conditions: Multiplier starts from `0`. Output result and should not exceed `5`.
Let's try:
0 so, 0 x 7 = 0
We did not get 5 yet, let's try a higher number.
1 so, 1 x 7 = 7
Oh no, we exceeded 5, let's get back to the previous step where we used 0 and got the result 0.
2- How much we need to add to 0 (the number we just got from step 1) in order to reach the value of the number on the left 5?
It's clear that the number is 5. 5-0 = 5
5 % 7 = 5
Hope that helps.
What about using it to calculate the day of the week for some future date? I'm just spitballing here but something like...
"Today is Tuesday. Jacob knows that his math test is going to be in 17 days. What day of the week will his math test be on?"
This type of problem is very accessible and can be solved without explicitly using modular arithmetic. I would imagine this to be a good warm up problem just to get students thinking about "wrapping around" and similar concepts. After discussing, you could then ask
"Today is a Friday. Janet knows that her mother's birthday is in 241 days. What day of the week will her mother's birthday fall on?"
which is easy with modular arithmetic, but would be tedious to do week by week. I feel like these are good, contextual examples that might actually be useful for students every once in awhile. Also, the intuitive way of solving these problems, where you would divide by 7, find the remainder, and add that to the current day, is modular arithmetic, which may make it stick more readily. Also, the modular base is a small number, 7, which I have found helps students to understand mod operations easier.
I've always preferred the module 60 argument in seconds per minute. This is closer to the actual modulo arithmetic than the 12 or 24 hour clock. We might say things like:
30 minutes and 14 seconds
but would never say
30 minutes and 60 seconds
we would say
31 minutes (and 0 seconds)
This same idea also works with minutes per hour.