Program to find modulus of a number by concatenating n times in Python

PythonServer Side ProgrammingProgramming

Suppose we have a number A. We have to generate a large number X by concatenating A, n times in a row and find the value of X modulo m.

So, if the input is like A = 15 n = 3 m = 8, then the output will be 3, because the number x will be 151515, and 151515 mod 8 = 3.

To solve this, we will follow these steps −

  • if A is same as 0, then
    • return 0
  • an:= A
  • c:= number of digits in A
  • c:= 10^c
  • d:= c-1
  • newmod := d*m
  • val := (c ^ n mod newmod) -1
  • val :=(val + newmod) mod newmod
  • an :=(an * val) mod newmod
  • return floor of (an / d)

Example

Let us see the following implementation to get better understanding −

def solve(A, n, m):
   if A == 0:
      return 0
   an=A
   c=len(str(A))
   c=10**c
   d=c-1
   newmod = d*m
   val = pow(c,n,newmod)-1
   val = (val+newmod) % newmod
   an = (an*val) % newmod
   return an // d

A = 15
n = 3
m = 8
print(solve(A, n, m))

Input

15, 3, 8

Output

3
raja
Updated on 23-Oct-2021 08:31:57

Advertisements