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

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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;

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

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

chevron_right


Python

filter_none

edit
close

play_arrow

link
brightness_4
code

# 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

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

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

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

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

chevron_right


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

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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;

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

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

chevron_right


Python

filter_none

edit
close

play_arrow

link
brightness_4
code

# 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

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

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

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

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

chevron_right


Output :

2

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



My Personal Notes arrow_drop_up

Improved By : Sam007, jit_t