Program to find remainder when large number is divided by r

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 = 13Output:11Input:N = 3435346456547566345436457867978, R = 17Output: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.