 GeeksforGeeks App
Open App Browser
Continue

# Minimum elements to be added in a range so that count of elements is divisible by K

Given three integer K, L and R (range [L, R]), the task is to find the minimum number of elements the range must be extended by so that the count of elements in the range is divisible by K.

Examples:

Input: K = 3, L = 10, R = 10
Output:
Count of elements in L to R is 1.
So to make it divisible by 3 , increment it by 2.

Input: K = 5, L = 9, R = 12
Output:

Approach:

• Count the total number of elements in the range and store it in a variable named count = R – L + 1.
• Now, minimum number of elements that need to be added to the range will be K – (count % K).

Below is the implementation of the above approach:

## C++

 `// C++ implementation of the approach``#include ``using` `namespace` `std;` `int` `minimumMoves(``int` `k, ``int` `l, ``int` `r)``{``    ``// Total elements in the range``    ``int` `count = r - l + 1;` `    ``// If total elements are already divisible by k``    ``if` `(count % k == 0)``        ``return` `0;` `    ``// Value that must be added to count``    ``// in order to make it divisible by k``    ``return` `(k - (count % k));``}` `// Driver Program to test above function``int` `main()``{``    ``int` `k = 3, l = 10, r = 10;``    ``cout << minimumMoves(k, l, r);` `return` `0;``}`

## Java

 `// Java implementation of the approach` `import` `java.io.*;` `class` `GFG {``   ` ` ``static` `int` `minimumMoves(``int` `k, ``int` `l, ``int` `r)``{``    ``// Total elements in the range``    ``int` `count = r - l + ``1``;` `    ``// If total elements are already divisible by k``    ``if` `(count % k == ``0``)``        ``return` `0``;` `    ``// Value that must be added to count``    ``// in order to make it divisible by k``    ``return` `(k - (count % k));``}` `// Driver Program to test above function``    ``public` `static` `void` `main (String[] args) {``    ``int` `k = ``3``, l = ``10``, r = ``10``;``    ``System.out.print(minimumMoves(k, l, r));``    ``}``}``// This code is contributed``// by inder_verma..`

## Python3

 `# Python 3 implementation of the approach` `def` `minimumMoves(k, l, r):``    ``# Total elements in the range``    ``count ``=` `r ``-` `l ``+` `1` `    ``# If total elements are already divisible by k``    ``if` `(count ``%` `k ``=``=` `0``):``        ``return` `0` `    ``# Value that must be added to count``    ``# in order to make it divisible by k``    ``return` `(k ``-` `(count ``%` `k))` `# Driver Program to test above function``if` `__name__ ``=``=` `'__main__'``:``    ``k ``=` `3``    ``l ``=` `10``    ``r ``=` `10``    ``print``(minimumMoves(k, l, r))` `# This code is contributed by``# Surendra_Gangwar`

## C#

 `// C# implementation of the approach``using` `System;` `class` `GFG {``    `   `static` `int` `minimumMoves(``int` `k, ``int` `l, ``int` `r)``{``    ``// Total elements in the range``    ``int` `count = r - l + 1;` `    ``// If total elements are already divisible by k``    ``if` `(count % k == 0)``        ``return` `0;` `    ``// Value that must be added to count``    ``// in order to make it divisible by k``    ``return` `(k - (count % k));``}` `// Driver Program to test above function``    ``public` `static` `void` `Main () {``    ``int` `k = 3, l = 10, r = 10;``    ``Console.WriteLine(minimumMoves(k, l, r));``    ``}``}``// This code is contributed``// by inder_verma..`

## PHP

 ``

## Javascript

 ``

Output:

`2`

Time Complexity: O(1)

Auxiliary Space: O(1)

My Personal Notes arrow_drop_up