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



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
Updated on: 2021-10-23T08:31:57+05:30

226 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements