# Program to find remainder without using modulo or % operator

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

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

 ` `

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

 ` `

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 `

Output :

`2`

My Personal Notes arrow_drop_up

Article Tags :

Be the First to upvote.

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.