How to compute mod of a big number? (original) (raw)

Last Updated : 10 Apr, 2023

Given a big number 'num' represented as string and an integer x, find value of "num % a" or "num mod a". 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 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 + 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 + 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 + 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

i<i < i<r = strlen($num); $i++) res=(res = (res=(res * 10 + num[num[num[i] - '0') % $a; return $res; } // Driver Code $num = "12316767678678"; echo mod($num, 10); // This code is contributed by ajit ?>

JavaScript

`

Time Complexity : O(|num|)

Auxiliary Space: O(1)