Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from math import gcd,
- def rev(a, m):
- if a == 1:
- return 1
- return (1 - rev(m % a, a) * m) / a + m
- def lcm(a,b):
- return (a * b) // gcd(a, b)
- def solve_x(a1,m1,a2,m2):
- g = gcd(m1, m2)
- k = (a2 - a1) / g * rev(m1/g, m2/g) % (m2/g)
- return a1 + k * m1
- n = int(input())
- a = [(int(input()), i + 2) for i in range(n)]
- new_x = solve_x(*a[0],*a[1])
- lc = lcm(a[0][1],a[1][1])
- for i in range(2,len(a)):
- new_x = solve_x(new_x,lc,*a[i])
- lc = lcm(a[i][1],lc)
- print(new_x)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement