# Program to find remainder without using modulo or % operator

• Difficulty Level : Basic
• Last Updated : 11 Jul, 2022

Given two numbers ‘num’ and ‘divisor’, find remainder when ‘num’ is divided by ‘divisor’. The use of modulo or % operator is not allowed.
Examples :

```Input:  num = 100, divisor = 7
Output: 2

Input:  num = 30, divisor = 9
Output: 3```

Method 1 :

## C++

 `// C++ program to find remainder without using``// modulo operator``#include ``using` `namespace` `std;` `// This function returns remainder of num/divisor``// without using % (modulo) operator``int` `getRemainder(``int` `num, ``int` `divisor)``{``    ``return` `(num - divisor * (num / divisor));``}` `// Driver program to test above functions``int` `main()``{``    ``// cout << 100 %0;``    ``cout << getRemainder(100, 7);``    ``return` `0;``}`

## Java

 `// Java program to find remainder without``// using modulo operator``import` `java.io.*;` `class` `GFG {` `    ``// This function returns remainder of``    ``// num/divisor without using % (modulo)``    ``// operator``    ``static` `int` `getRemainder(``int` `num, ``int` `divisor)``    ``{``        ``return` `(num - divisor * (num / divisor));``    ``}` `    ``// Driver program to test above functions``    ``public` `static` `void` `main(String[] args)``    ``{` `        ``// print 100 % 0;``        ``System.out.println(getRemainder(``100``, ``7``));``    ``}``}` `// This code is contributed by Sam007.`

## Python3

 `# Python program to find remainder``# without using modulo operator` `# This function returns remainder of``# num / divisor without using % (modulo)``# operator``def` `getRemainder(num, divisor):``    ``return` `(num ``-` `divisor ``*` `(num ``/``/` `divisor))`  `# Driver program to test above functions``num ``=` `100``divisor ``=` `7``print``(getRemainder(num, divisor))` `# This code is contributed by Danish Raza`

## C#

 `// C# program to find remainder without using``// modulo operator``using` `System;` `class` `GFG {``    ``// This function returns remainder of``    ``// num/divisor without using %``    ``// (modulo) operator``    ``static` `int` `getRemainder(``int` `num, ``int` `divisor)``    ``{``        ``return` `(num - divisor * (num / divisor));``    ``}` `    ``// Driver program to test above functions``    ``public` `static` `void` `Main()``    ``{` `        ``// print 100 % 0;``        ``Console.Write(getRemainder(100, 7));``    ``}``}` `// This code is contributed by Sam007.`

## PHP

 ``

## Javascript

 ``

Output :

`2`

Time Complexity: O(1)

Auxiliary Space: O(1)
This method is contributed by Bishal Kumar Dubey

Method 2

The idea is simple, we run a loop to find the largest multiple of ‘divisor’ that is smaller than or equal to ‘num’. Once we find such a multiple, we subtract the multiple from ‘num’ to find the divisor.
Following is the implementation of above idea. Thanks to eleventyone for suggesting this solution in a comment.

## C++

 `// C++ program to find remainder without using modulo operator``#include ``using` `namespace` `std;` `// This function returns remainder of num/divisor without``// using % (modulo) operator``int` `getRemainder(``int` `num, ``int` `divisor)``{``    ``// Handle divisor equals to 0 case``    ``if` `(divisor == 0) {``        ``cout << ``"Error: divisor can't be zero \n"``;``        ``return` `-1;``    ``}` `    ``// Handle negative values``    ``if` `(divisor < 0)``        ``divisor = -divisor;``    ``if` `(num < 0)``        ``num = -num;` `    ``// Find the largest product of 'divisor' that is smaller``    ``// than or equal to 'num'``    ``int` `i = 1;``    ``int` `product = 0;``    ``while` `(product <= num) {``        ``product = divisor * i;``        ``i++;``    ``}` `    ``// return remainder``    ``return` `num - (product - divisor);``}` `// Driver program to test above functions``int` `main()``{``    ``// cout << 100 %0;``    ``cout << getRemainder(100, 7);``    ``return` `0;``}`

## Java

 `// Java program to find remainder without``// using modulo operator``import` `java.io.*;` `class` `GFG {` `    ``// This function returns remainder``    ``// of num/divisor without using %``    ``// (modulo) operator``    ``static` `int` `getRemainder(``int` `num, ``int` `divisor)``    ``{` `        ``// Handle divisor equals to 0 case``        ``if` `(divisor == ``0``) {``            ``System.out.println(``"Error: divisor "``                               ``+ ``"can't be zero \n"``);``            ``return` `-``1``;``        ``}` `        ``// Handle negative values``        ``if` `(divisor < ``0``)``            ``divisor = -divisor;``        ``if` `(num < ``0``)``            ``num = -num;` `        ``// Find the largest product of 'divisor'``        ``// that is smaller than or equal to 'num'``        ``int` `i = ``1``;``        ``int` `product = ``0``;``        ``while` `(product <= num) {``            ``product = divisor * i;``            ``i++;``        ``}` `        ``// return remainder``        ``return` `num - (product - divisor);``    ``}` `    ``// Driver program to test above functions``    ``public` `static` `void` `main(String[] args)``    ``{` `        ``// print 100 % 0;``        ``System.out.println(getRemainder(``100``, ``7``));``    ``}``}` `// This code is contributed by Sam007.`

## Python3

 `# Python program to find remainder without``# using modulo operator. This function``# returns remainder of num / divisor without``# using % (modulo) operator` `def` `getRemainder(num, divisor):` `    ``# Handle divisor equals to 0 case``    ``if` `(divisor ``=``=` `0``):``        ``return` `False` `    ``# Handle negative values``    ``if` `(divisor < ``0``):``        ``divisor ``=` `-``divisor``    ``if` `(num < ``0``):``        ``num ``=` `-``num` `    ``# Find the largest product of 'divisor'``    ``# that is smaller than or equal to 'num'``    ``i ``=` `1``    ``product ``=` `0``    ``while` `(product <``=` `num):``            ``product ``=` `divisor ``*` `i``            ``i ``+``=` `1``    ``# return remainder``    ``return` `num ``-` `(product ``-` `divisor)` `# Driver program to test above functions``num ``=` `100``divisor ``=` `7``print``(getRemainder(num, divisor))` `# This code is contributed by Danish Raza`

## C#

 `// C# program to find remainder without``// using modulo operator``using` `System;` `class` `GFG {` `    ``// This function returns remainder``    ``// of num/divisor without using %``    ``// (modulo) operator``    ``static` `int` `getRemainder(``int` `num, ``int` `divisor)``    ``{` `        ``// Handle divisor equals to 0 case``        ``if` `(divisor == 0) {``            ``Console.WriteLine(``"Error: divisor "``                              ``+ ``"can't be zero \n"``);``            ``return` `-1;``        ``}` `        ``// Handle negative values``        ``if` `(divisor < 0)``            ``divisor = -divisor;``        ``if` `(num < 0)``            ``num = -num;` `        ``// Find the largest product of 'divisor'``        ``// that is smaller than or equal to 'num'``        ``int` `i = 1;``        ``int` `product = 0;``        ``while` `(product <= num) {``            ``product = divisor * i;``            ``i++;``        ``}` `        ``// return remainder``        ``return` `num - (product - divisor);``    ``}` `    ``// Driver program to test above functions``    ``public` `static` `void` `Main()``    ``{` `        ``// print 100 %0;``        ``Console.Write(getRemainder(100, 7));``    ``}``}` `// This code is contributed by Sam007.`

## PHP

 ``

## Javascript

 `// Javascript program to find remainder without``// using modulo operator` `// This function returns remainder of``// num/divisor without using % (modulo)``// operator` `function` `getRemainder(num, divisor)``{``    ` `    ``// Handle divisor equals to 0 case``    ``if` `(divisor == 0)``    ``{``        ``document.write(``"Error: divisor can't be zero
"``);``        ``return` `-1;``    ``}` `    ``// Handle negative values``    ``if` `(divisor < 0) divisor = -divisor;``    ``if` `(num < 0)     num = -num;` `    ``// Find the largest product of 'divisor'``    ``// that is smaller than or equal to 'num'``    ``let i = 1;``    ``let product = 0;``    ``while` `(product <= num)``    ``{``        ``product = divisor * i;``        ``i++;``    ``}` `    ``// return remainder``    ``return` `num - (product - divisor);``}` `// Driver program to test above functions``document.write(getRemainder(100, 7));` `// This code is contributed by _saurabh_jaiswal`

Output :

`2`

Time Complexity: O(n)

Auxiliary Space: O(1)

Method 3

Keep subtracting the denominator from numerator until the numerator is less than the denominator.

## C++

 `// C++ implementation of the approach``#include ``using` `namespace` `std;` `// Function to return num % divisor``// without using % (modulo) operator``int` `getRemainder(``int` `num, ``int` `divisor)``{` `    ``// While divisor is smaller``    ``// than n, keep subtracting``    ``// it from num``    ``while` `(num >= divisor)``        ``num -= divisor;` `    ``return` `num;``}` `// Driver code``int` `main()``{``    ``int` `num = 100, divisor = 7;``    ``cout << getRemainder(num, divisor);` `    ``return` `0;``}`

## Java

 `// A Java implementation of the approach``import` `java.util.*;` `class` `GFG``{` `// Function to return num % divisor``// without using % (modulo) operator``static` `int` `getRemainder(``int` `num, ``int` `divisor)``{` `    ``// While divisor is smaller``    ``// than n, keep subtracting``    ``// it from num``    ``while` `(num >= divisor)``        ``num -= divisor;` `    ``return` `num;``}` `// Driver code``public` `static` `void` `main(String[] args)``{``    ``int` `num = ``100``, divisor = ``7``;``    ``System.out.println(getRemainder(num, divisor));``}``}` `// This code is contributed by Princi Singh`

## Python3

 `# Python3 implementation of the approach` `# Function to return num % divisor``# without using % (modulo) operator``def` `getRemainder(num, divisor):` `    ``# While divisor is smaller``    ``# than n, keep subtracting``    ``# it from num``    ``while` `(num >``=` `divisor):``        ``num ``-``=` `divisor;` `    ``return` `num;` `# Driver code``if` `__name__ ``=``=` `'__main__'``:` `    ``num ``=` `100``; divisor ``=` `7``;``    ``print``(getRemainder(num, divisor));` `# This code is contributed by Princi Singh`

## C#

 `// C# implementation of the approach``using` `System;``    ` `class` `GFG``{` `// Function to return num % divisor``// without using % (modulo) operator``static` `int` `getRemainder(``int` `num, ``int` `divisor)``{` `    ``// While divisor is smaller``    ``// than n, keep subtracting``    ``// it from num``    ``while` `(num >= divisor)``        ``num -= divisor;` `    ``return` `num;``}` `// Driver code``public` `static` `void` `Main(String[] args)``{``    ``int` `num = 100, divisor = 7;``    ``Console.WriteLine(getRemainder(num, divisor));``}``}` `// This code is contributed by PrinciRaj1992`

## Javascript

 `// Javascript implementation of the approach` `// Function to return num % divisor``// without using % (modulo) operator``function` `getRemainder(num, divisor)``{` `    ``// While divisor is smaller``    ``// than n, keep subtracting``    ``// it from num``    ``while` `(num >= divisor)``        ``num -= divisor;` `    ``return` `num;``}` `// Driver code``let num = 100, divisor = 7;``document.write(getRemainder(num, divisor));` `// This code is contributed by _saurabh_jaiswal`

Output :

`2`

Time Complexity: O(n)

Auxiliary Space: O(1)

My Personal Notes arrow_drop_up