# 乘法逆元
def egcd(a, m):
x0, y0, x1, y1 = 1, 0, 0, 1
while m != 0:
q, a, m = a //m, m, a % m
x0, x1 = x1, x0 - x1 * q
y0, y1 = y1, y0 - y1 * q
return x0
M = 1
result = 0
ls = []
n = eval(input("请输入你要计算的CRT方程的个数:"))
for i in range(n):
A = int(input("请输入第{}个方程的余数:".format(i+1)))
P = int(input("请输入第{}个方程的被除数:".format(i+1)))
ls.append((A, P))
M *= P
for i in range(n):
B = M / ls[i][1]
B_1 = mul_inverse(B, ls[i][1])
result += ls[i][0] * B * B_1
result = result % M
print("CRT求出的同余方程的解为:", result)