Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình tìm môđun của một số bằng cách nối n lần trong Python

Giả sử chúng ta có một số A. Chúng ta phải tạo một số lớn X bằng cách ghép A, n lần liên tiếp và tìm giá trị của X modulo m.

Vì vậy, nếu đầu vào là A =15 n =3 m =8, thì đầu ra sẽ là 3, vì số x sẽ là 151515 và 151515 mod 8 =3.

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • nếu A giống 0, thì
    • trả về 0
  • an:=A
  • c:=số chữ số trong 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
  • tầng trả lại của (an / d)

Ví dụ

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

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))

Đầu vào

15, 3, 8

Đầu ra

3