Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Tìm modulo của số tạo bằng cách nối n lần một số cho trước trong Python

Cho số A, nối A liên tiếp n lần tạo thành số lớn X. Tìm X mod m.

Ví dụ: A=15, n=3, m=8 → X=151515, 151515 mod 8 = 3.

Giải thuật

  • Nếu A == 0: trả về 0.
  • c = số chữ số của A, base = 10^c.
  • d = base - 1.
  • newmod = d * m.
  • val = (base^n mod newmod) - 1, điều chỉnh về dương.
  • an = (A * val) mod newmod.
  • Trả về an // d.

Ví dụ mã Python

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

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

Đầu vào

15, 3, 8

Đầu ra

3