Related Articles

# Program to find remainder without using modulo or % operator

• Difficulty Level : Basic
• Last Updated : 06 Apr, 2021

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```

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

In case you wish to attend live classes with experts, please refer DSA Live Classes for Working Professionals and Competitive Programming Live for Students.

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.`

## Python

 `# 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`

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.`

## Python

 `# 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`

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`

My Personal Notes arrow_drop_up