Open In App

Program to find remainder without using modulo or % operator

Last Updated : 11 Jul, 2022
Suggest changes
Share
Like Article
Like
Report

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 <iostream> 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
<?php // PHP program to find remainder  // without using modulo operator // This function returns remainder  // of num/divisor without using  // % (modulo) operator function getRemainder($num, $divisor) { $t = ($num - $divisor * (int)($num / $divisor)); return $t; } // Driver Code echo getRemainder(100, 7); // This code is contributed by ajit ?> 
JavaScript
<script> // Javascript program to find remainder  // without using modulo operator // This function returns remainder  // of num/divisor without using  // % (modulo) operator function getRemainder(num, divisor) {  let t = (num - divisor *   parseInt(num / divisor));  return t; } // Driver Code document.write(getRemainder(100, 7)); // This code is contributed by _saurabh_jaiswal </script> 

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 <iostream> 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
<?php // php 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) { echo "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' $i = 1; $product = 0; while ($product <= $num) { $product = $divisor * $i; $i++; } // return remainder return $num - ($product - $divisor); } // Driver program to test above functions echo getRemainder(100, 7); // This code is contributed by ajit. ?> 
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 <br>");  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 <iostream> 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)


 


Next Article

Similar Reads