Can someone explain the modulo operation to me like I'm five? (Credit.c)
Struggling to understand the modulus operator when the number being divided BY is smaller than the number dividing.
Modulo operator
What the HELL is a modulo?
Videos
(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.
So I'm really struggling with the credit problem in pset1. I'm completely new to coding and computer science and everything but I really want to try doing all of the problems in this class. I had to look up mario and cash to gain some insight into what I've been doing wrong when I approach a problem. With each completed problem the pieces come together in my head a little more than they were before.
Credit has me totally through a loop. It seems like for all of the problems I understand what to use in C as far as loops and what have you but I really struggle with figuring out what like operations I'm supposed to use to tell the program exactly what to do. With the whole modulo operation thing I don't really understand what it's doing and what I have to do to get it to give me the numbers I need. Something tells me I need to use different powers of ten to somehow separate the full credit card number into individual digits but because I don't understand what % 10 is actually doing I can't fully figure out what I need to do.
I'm struggling with trying to decide if I should just skip this problem and try again another time or if I should contemplate it more. With each problem it seems like I struggle with like some kind of mathematical aspect, I feel like there's something that I'm missing but I can't tell if I just how to make myself think about things differently. I feel like I'm making myself crazy about this lol
To preface this, I have been exposed to this concept numerous times, asked teachers/TA's, and even Googled and read answers, frankly I am still lost.
What I know is that the % "modulus" operator performs remainder division on two integers.
I understand that 10 % 6 would be four, but do not understand how to calculate 6 % 10.
I REALLY want to understand, specifically because it is necessary for wrapping around collections/various things.
If someone can dumb it down HARD for me, that is what I need.
I am trying to relate it to something like a = b * q + r because my understanding is that is how it "literally" works.
Hey guys, I just started learning python and im learning about "modulo operator" in the codeacademy free course and my english isn't perfect and im not good at math at all so i'm lost, and also idk if i should be seeing this if literally i dont know anything about coding, just starting the basics. ty
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.