Start learning free

LESSON 25 OF 677 · CALCULATIONS WITH NUMBERS

Modulo operator in Kotlin

Lesson

TL ; DR:

  • The modulo operator (%) calculates the remainder of dividing two values:

    println(10 % 2) // Output: 0
    println(15 % 4) // Output: 3
    println(20 % 3) // Output: 2
    

  • It can also be used with variables:

    val a = 2
    val b = 4
    
    println(b % a) // Output: 0
    println(11 % b) // Output: 3
    


Full lesson:

Remember how we first learn about the division of two integer numbers in primary school?

The quotient is the number of times a division is completed fully, while the remainder is the amount left that doesn't entirely go into the divisor.

Here are some examples:

10 / 2 = quotient 5, remainder 0
15 / 4 = quotient 3, remainder 3
20 / 3 = quotient 6, remainder 2

The modulo operator:

The modulo operator (%) calculates the remainder of dividing two values:

println(10 % 2) // Output: 0
println(15 % 4) // Output: 3
println(20 % 3) // Output: 2

It can also be used with variables:

val a = 2
val b = 4

println(b % a) // Output: 0
println(11 % b) // Output: 3

Math.floor() function

The Math.floor() function returns the largest integer less than or equal to a given number:

println(Math.floor(3.9)) // Output: 3.0
println(Math.floor(5.2)) // Output: 5.0
println(Math.floor(7.0)) // Output: 7.0

We can use this function if we want to compute the integral part of some division (quotient):

val a = 2
val b = 3

val c = Math.floor(b.toDouble() / a)
println(c) // Output: 1.0

With two Int values you don't need it: b / a already gives the quotient, 1.


Quotient and remainder:

In programming, we combine both these concepts to get the quotient and remainder of some divison:

// Let's divide 26 by 3:
val quotient = 26 / 3
val remainder = 26 % 3

println(quotient) // Output: 8
println(remainder) // Output: 2

Assignment
Follow the Coding Tutorial and let's practice with quotient and remainder!


Hint
Look at the examples above if you get stuck.


STEP 1 OF 1
    Ctrl + Enter to check