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 <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)
This article is contributed by Chirag. Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above
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)
Please Login to comment...