# Minimum decrements to make integer A divisible by integer B

Given two positive integers A and B where A is greater than B. In one move one can decrease A by 1 which implies that after one move A is equal to A – 1. The task is to find the minimum number of moves required to make A divisible by B in constant time.

Examples:

Input: A = 10, B = 3
Output: 1
Explanation: Only one move is required A = A – 1 = 9, which is divisible by 3.

Input : A = 10, B = 10
Output : 0
Explanation: Since A is equal to B therefore zero move required.

Approach:
To solve the problem mentioned above we take the modulus of the numbers that are A % B and the result is stored in a variable that is the required answer.
Below is the implementation of the above approach:

## C++

 `// C++ implementation to count` `// Total numbers moves to make` `// integer A divisible by integer B`   `#include ` `using` `namespace` `std;`   `// Function that print number` `// of moves required` `void` `movesRequired(``int` `a, ``int` `b)` `{` `    ``// calculate modulo` `    ``int` `total_moves = a % b;`   `    ``// print the required answer` `    ``cout << total_moves << ``"\n"``;` `}`   `// Driver Code` `int` `main()` `{`   `    ``// initialise A and B` `    ``int` `A = 10, B = 3;`   `    ``movesRequired(A, B);`   `    ``return` `0;` `}`

## Java

 `// Java implementation to count` `// total numbers moves to make` `// integer A divisible by integer B` `import` `java.util.*;`   `class` `GFG{`   `// Function that print number` `// of moves required` `static` `void` `movesRequired(``int` `a, ``int` `b)` `{` `    `  `    ``// Calculate modulo` `    ``int` `total_moves = a % b;`   `    ``// Print the required answer` `    ``System.out.println(total_moves);` `}`   `// Driver code` `public` `static` `void` `main(String[] args)` `{` `    `  `    ``// Initialise A and B` `    ``int` `A = ``10``, B = ``3``;`   `    ``movesRequired(A, B);` `}` `}`   `// This code is contributed by offbeat`

## Python3

 `# Python3 implementation to count` `# total numbers moves to make` `# integer A divisible by integer B`   `# Function that print number` `# of moves required` `def` `movesRequired(a, b):` `    `  `    ``# Calculate modulo` `    ``total_moves ``=` `a ``%` `b`   `    ``# Print the required answer` `    ``print``(total_moves)`   `# Driver Code` `if` `__name__ ``=``=` `'__main__'``:` `    `  `    ``# Initialise A and B` `    ``A ``=` `10` `    ``B ``=` `3`   `    ``movesRequired(A, B)`   `# This code is contributed by Samarth`

## C#

 `// C# implementation to count` `// total numbers moves to make` `// integer A divisible by integer B` `using` `System;` `class` `GFG` `{`   `// Function that print number` `// of moves required` `static` `void` `movesRequired(``int` `a, ``int` `b)` `{` `    `  `    ``// Calculate modulo` `    ``int` `total_moves = a % b;`   `    ``// Print the required answer` `    ``Console.Write(total_moves);` `}`   `// Driver code` `public` `static` `void` `Main(String []args)` `{`   `    ``// Initialise A and B` `    ``int` `A = 10, B = 3;`   `    ``movesRequired(A, B);` `}` `}`   `// This code is contributed by shivanisinghss2110`

## Javascript

 ``

Output:

`1`

Time Complexity: O(1), as constant operations are being performed.
Auxiliary Space: O(1), constant space is required for the above approach.

Feeling lost in the world of random DSA topics, wasting time without progress? It's time for a change! Join our DSA course, where we'll guide you on an exciting journey to master DSA efficiently and on schedule.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 geeks!

Previous
Next