Skip to content
Related Articles

Related Articles

Improve Article

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

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




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

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.

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




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

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

 




My Personal Notes arrow_drop_up
Recommended Articles
Page :