Program to find remainder when large number is divided by r in C++

C++Server Side ProgrammingProgramming

In this problem, we are given a string num which is a large number and an integer R. Our task is to create a program to find remainder when large number is divided by r in C++.

Problem Description − We need to find the remainder when the number defined by the string is divided by r which is a two-digit number.

Let’s take an example to understand the problem

Input

num = “123423450942121” r = 54

Output

7

Solution Approach

To find the remainder, we obviously need to divide the number. But dividing huge numbers is a complex process so to ease up the process, we will divide digit by digit. And store the remainder that follows. This process is to be continued for the whole string that contains number from MSB to LSB. And In the end the remainder is printed.

Program to illustrate the working of our solution

Example

 Live Demo

#include <iostream>
#include <string.h>
using namespace std;
int calcRem(string num, int R){
   int currDigit, rem = 0;
   for (int i = 0; i < num.length(); i++) {
      currDigit = rem * 10 + (num[i] - '0');
      rem = currDigit % R;
   }
   return rem;
}
int main() {
   string num = "123423450942121";
   int R = 54;
   cout<<"The remainder when large number is divided by r is"<<calcRem(num, R);
   return 0;
}

Output

The remainder when large number is divided by r is 7
raja
Published on 19-May-2020 11:46:02
Advertisements