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