Skip to content
Related Articles

Related Articles

Program to find remainder when large number is divided by r
  • Last Updated : 09 Feb, 2021

Given a Number N, the task is to find the Remainder when N is divided by R (a two digit Number). The input of the Number may be very large.
Examples: 

Input: N = 13589234356546756, R = 13
Output: 11

Input: N = 3435346456547566345436457867978, R = 17
Output: 13
  • Get the digit of N one by one from left to right.
  • For each digit, combine with next digit if its less than R.
  • If the combination at any point reaches above R, take and store the Remainder.
  • Repeat the above steps for all digits from left to right.

Below is the program that implements the above approach: 

C++




// CPP implementation to find Remainder
// when a large Number is divided by R
 
#include <bits/stdc++.h>
using namespace std;
 
// Function to Return Remainder
int Remainder(string str, int R)
{
    // len is variable to store the
    // length of Number string.
    int len = str.length();
 
    int Num, Rem = 0;
 
    // loop that find Remainder
    for (int i = 0; i < len; i++) {
 
        Num = Rem * 10 + (str[i] - '0');
        Rem = Num % R;
    }
 
    // Return the remainder
    return Rem;
}
 
// Driver code
int main()
{
 
    // Get the large number as string
    string str = "13589234356546756";
 
    // Get the divisor R
    int R = 13;
 
    // Find and print the remainder
    cout << Remainder(str, R);
 
    return 0;
}


Java




// Java implementation to find Remainder
// when a large Number is divided by R
 
class GFG
{
    // Function to Return Remainder
    static int Remainder(String str, int R)
    {
        // len is variable to store the
        // length of Number string.
        int len = str.length();
     
        int Num, Rem = 0;
     
        // loop that find Remainder
        for (int i = 0; i < len; i++) {
     
            Num = Rem * 10 + (str.charAt(i) - '0');
            Rem = Num % R;
        }
     
        // Return the remainder
        return Rem;
    }
     
    // Driver code
    public static void main( String [] args)
    {
     
        // Get the large number as string
        String str = "13589234356546756";
     
        // Get the divisor R
        int R = 13;
     
        // Find and print the remainder
        System.out.println(Remainder(str, R));
     
         
    }
}
 
// This code is contributed
// by ihritik


Python 3




# Python 3 implementation to
# find Remainder when a large
# Number is divided by R
 
# Function to Return Remainder
def Remainder(str, R):
 
    # len is variable to store the
    # length of Number string.
    l = len(str)
 
    Rem = 0
 
    # loop that find Remainder
    for i in range(l):
 
        Num = Rem * 10 + (ord(str[i]) -
                          ord('0'))
        Rem = Num % R
 
    # Return the remainder
    return Rem
 
# Driver code
if __name__ == "__main__":
 
    # Get the large number
    # as string
    str = "13589234356546756"
 
    # Get the divisor R
    R = 13
 
    # Find and print the remainder
    print(Remainder(str, R))
 
# This code is contributed
# by ChitraNayal


C#




// C# implementation to find
// Remainder when a large
// Number is divided by R
using System;
 
class GFG
{
     
// Function to Return Remainder
static int Remainder(String str,
                     int R)
{
    // len is variable to store the
    // length of Number string.
    int len = str.Length;
 
    int Num, Rem = 0;
 
    // loop that find Remainder
    for (int i = 0; i < len; i++)
    {
        Num = Rem * 10 + (str[i] - '0');
        Rem = Num % R;
    }
 
    // Return the remainder
    return Rem;
}
 
// Driver code
public static void Main()
{
 
    // Get the large number as string
    String str = "13589234356546756";
 
    // Get the divisor R
    int R = 13;
 
    // Find and print the remainder
    Console.WriteLine(Remainder(str, R));
}
}
 
// This code is contributed
// by Subhadeep


PHP




<?php
// PHP implementation to find Remainder
// when a large Number is divided by R
 
// Function to Return Remainder
function Remainder($str, $R)
{
    // len is variable to store the
    // length of Number string.
    $len = strlen($str);
 
    $Num = 0; $Rem = 0;
 
    // loop that find Remainder
    for ($i = 0; $i < $len; $i++)
    {
 
        $Num = $Rem * 10 + ($str[$i] - '0');
        $Rem = $Num % $R;
    }
 
    // Return the remainder
    return $Rem;
}
 
// Driver code
 
// Get the large number as string
$str = "13589234356546756";
 
// Get the divisor R
$R = 13;
 
// Find and print the remainder
echo Remainder($str, $R);
 
// This code is contributed
// by Akanksha Rai(Abby_akku)


Output: 

11

 

Time Complexity: O(L ) where L is length of the string

Auxiliary Space: O(L )

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.




My Personal Notes arrow_drop_up
Recommended Articles
Page :