Program to find remainder without using modulo or % operator
Last Updated :
11 Jul, 2022
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++
#include <iostream>
using namespace std;
int getRemainder( int num, int divisor)
{
return (num - divisor * (num / divisor));
}
int main()
{
cout << getRemainder(100, 7);
return 0;
}
|
Java
import java.io.*;
class GFG {
static int getRemainder( int num, int divisor)
{
return (num - divisor * (num / divisor));
}
public static void main(String[] args)
{
System.out.println(getRemainder( 100 , 7 ));
}
}
|
Python3
def getRemainder(num, divisor):
return (num - divisor * (num / / divisor))
num = 100
divisor = 7
print (getRemainder(num, divisor))
|
C#
using System;
class GFG {
static int getRemainder( int num, int divisor)
{
return (num - divisor * (num / divisor));
}
public static void Main()
{
Console.Write(getRemainder(100, 7));
}
}
|
PHP
<?php
function getRemainder( $num , $divisor )
{
$t = ( $num - $divisor *
(int)( $num / $divisor ));
return $t ;
}
echo getRemainder(100, 7);
?>
|
Javascript
<script>
function getRemainder(num, divisor)
{
let t = (num - divisor *
parseInt(num / divisor));
return t;
}
document.write(getRemainder(100, 7));
</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++
#include <iostream>
using namespace std;
int getRemainder( int num, int divisor)
{
if (divisor == 0) {
cout << "Error: divisor can't be zero \n" ;
return -1;
}
if (divisor < 0)
divisor = -divisor;
if (num < 0)
num = -num;
int i = 1;
int product = 0;
while (product <= num) {
product = divisor * i;
i++;
}
return num - (product - divisor);
}
int main()
{
cout << getRemainder(100, 7);
return 0;
}
|
Java
import java.io.*;
class GFG {
static int getRemainder( int num, int divisor)
{
if (divisor == 0 ) {
System.out.println( "Error: divisor "
+ "can't be zero \n" );
return - 1 ;
}
if (divisor < 0 )
divisor = -divisor;
if (num < 0 )
num = -num;
int i = 1 ;
int product = 0 ;
while (product <= num) {
product = divisor * i;
i++;
}
return num - (product - divisor);
}
public static void main(String[] args)
{
System.out.println(getRemainder( 100 , 7 ));
}
}
|
Python3
def getRemainder(num, divisor):
if (divisor = = 0 ):
return False
if (divisor < 0 ):
divisor = - divisor
if (num < 0 ):
num = - num
i = 1
product = 0
while (product < = num):
product = divisor * i
i + = 1
return num - (product - divisor)
num = 100
divisor = 7
print (getRemainder(num, divisor))
|
C#
using System;
class GFG {
static int getRemainder( int num, int divisor)
{
if (divisor == 0) {
Console.WriteLine( "Error: divisor "
+ "can't be zero \n" );
return -1;
}
if (divisor < 0)
divisor = -divisor;
if (num < 0)
num = -num;
int i = 1;
int product = 0;
while (product <= num) {
product = divisor * i;
i++;
}
return num - (product - divisor);
}
public static void Main()
{
Console.Write(getRemainder(100, 7));
}
}
|
PHP
<?php
function getRemainder( $num , $divisor )
{
if ( $divisor == 0)
{
echo "Error: divisor can't be zero \n" ;
return -1;
}
if ( $divisor < 0) $divisor = - $divisor ;
if ( $num < 0) $num = - $num ;
$i = 1;
$product = 0;
while ( $product <= $num )
{
$product = $divisor * $i ;
$i ++;
}
return $num - ( $product - $divisor );
}
echo getRemainder(100, 7);
?>
|
Javascript
function getRemainder(num, divisor)
{
if (divisor == 0)
{
document.write( "Error: divisor can't be zero <br>" );
return -1;
}
if (divisor < 0) divisor = -divisor;
if (num < 0) num = -num;
let i = 1;
let product = 0;
while (product <= num)
{
product = divisor * i;
i++;
}
return num - (product - divisor);
}
document.write(getRemainder(100, 7));
|
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++
#include <iostream>
using namespace std;
int getRemainder( int num, int divisor)
{
while (num >= divisor)
num -= divisor;
return num;
}
int main()
{
int num = 100, divisor = 7;
cout << getRemainder(num, divisor);
return 0;
}
|
Java
import java.util.*;
class GFG
{
static int getRemainder( int num, int divisor)
{
while (num >= divisor)
num -= divisor;
return num;
}
public static void main(String[] args)
{
int num = 100 , divisor = 7 ;
System.out.println(getRemainder(num, divisor));
}
}
|
Python3
def getRemainder(num, divisor):
while (num > = divisor):
num - = divisor;
return num;
if __name__ = = '__main__' :
num = 100 ; divisor = 7 ;
print (getRemainder(num, divisor));
|
C#
using System;
class GFG
{
static int getRemainder( int num, int divisor)
{
while (num >= divisor)
num -= divisor;
return num;
}
public static void Main(String[] args)
{
int num = 100, divisor = 7;
Console.WriteLine(getRemainder(num, divisor));
}
}
|
Javascript
function getRemainder(num, divisor)
{
while (num >= divisor)
num -= divisor;
return num;
}
let num = 100, divisor = 7;
document.write(getRemainder(num, divisor));
|
Output :
2
Time Complexity: O(n)
Auxiliary Space: O(1)
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...