Skip to content
Related Articles

Related Articles

Improve Article

How to compute mod of a big number?

  • Difficulty Level : Medium
  • Last Updated : 13 Oct, 2021
Geek Week

Given a big number ‘num’ represented as string and an integer x, find value of “num % x” or “num mod x”. Output is expected as an integer.

Examples : 

Input:  num = "12316767678678",  a = 10
Output: num (mod a) ≡ 8

The idea is to process all digits one by one and use the property that 

xy (mod a) ≡ ((x (mod a) * 10) + (y (mod a))) mod a

where, x : left-most digit



y: rest of the digits except x.

for example: 

625 % 5 = (((6 % 5)*10) + (25 % 5)) % 5 = 0

Below is the implementation.

Thanks to utkarsh111 for suggesting the below solution.

C++




// C++ program to compute mod of a big number represented
// as string
#include <iostream>
using namespace std;
 
// Function to compute num (mod a)
int mod(string num, int a)
{
    // Initialize result
    int res = 0;
 
    // One by one process all digits of 'num'
    for (int i = 0; i < num.length(); i++)
        res = (res * 10 + (int)num[i] - '0') % a;
 
    return res;
}
 
// Driver program
int main()
{
    string num = "12316767678678";
    cout << mod(num, 10);
    return 0;
}

Java




// Java program to compute mod of a big
// number represented as string
import java.io.*;
 
class GFG {
 
    // Function to compute num (mod a)
    static int mod(String num, int a)
    {
 
        // Initialize result
        int res = 0;
 
        // One by one process all digits of 'num'
        for (int i = 0; i < num.length(); i++)
            res = (res * 10 + (int)num.charAt(i) - '0') % a;
 
        return res;
    }
 
    // Driver program
    public static void main(String[] args)
    {
 
        String num = "12316767678678";
 
        System.out.println(mod(num, 10));
    }
}
 
// This code is contributed by vt_m.

Python3




# program to compute mod of a big number
# represented as string
 
# Function to compute num (mod a)
 
 
def mod(num, a):
 
    # Initialize result
    res = 0
 
    # One by one process all digits
    # of 'num'
    for i in range(0, len(num)):
        res = (res * 10 + int(num[i])) % a
 
    return res
 
 
# Driver program
num = "12316767678678"
print(mod(num, 10))
 
# This code is contributed by Sam007

C#




// C# program to compute mod of a big
// number represented as string
using System;
 
public class GFG {
 
    // Function to compute num (mod a)
    static int mod(String num, int a)
    {
 
        // Initialize result
        int res = 0;
 
        // One by one process all
        // digits of 'num'
        for (int i = 0; i < num.Length; i++)
            res = (res * 10 + (int)num[i] - '0') % a;
 
        return res;
    }
 
    // Driver code
    public static void Main()
    {
        String num = "12316767678678";
 
        Console.WriteLine(mod(num, 10));
    }
}
 
// This code is contributed by Sam007

PHP




<?php
// PHP program to compute mod
// of a big number represented
// as string
 
// Function to compute num (mod a)
function mod($num, $a)
{
    // Initialize result
    $res = 0;
 
    // One by one process
    // all digits of 'num'
    for ($i = 0; $i < $r = strlen($num); $i++)
        $res = ($res * 10 +
                $num[$i] - '0') % $a;
 
    return $res;
}
 
// Driver Code
$num = "12316767678678";
echo mod($num, 10);
 
// This code is contributed by ajit
?>

Javascript




<script>
 
// Javascript program to compute mod
// of a big number represented
// as string
 
// Function to compute num (mod a)
function mod(num, a)
{
     
    // Initialize result
    let res = 0;
 
    // One by one process
    // all digits of 'num'
    for(let i = 0; i < num.length; i++)
        res = (res * 10 +
            num[i] - '0') % a;
 
    return res;
}
 
// Driver Code
let num = "12316767678678";
 
document.write(mod(num, 10));
 
// This code is contributed by _saurabh_jaiswal
 
</script>

Output : 

8

Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above
 

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.




My Personal Notes arrow_drop_up
Recommended Articles
Page :