Skip to content

Instantly share code, notes, and snippets.

@dionyziz
Last active December 13, 2020 12:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dionyziz/44e37974aedc9d650a657dc946fc1c68 to your computer and use it in GitHub Desktop.
Save dionyziz/44e37974aedc9d650a657dc946fc1c68 to your computer and use it in GitHub Desktop.
with open('in.txt') as f:
_, buses = f.read().splitlines()
def iterative_crt(a1, n1, a2, n2):
return pow(n1, -1, n2) * (a2 - a1) * n1 + a1
residues = 0
moduli = 1
for i, bus in enumerate(buses.split(',')):
if bus != 'x':
bus = int(bus)
residue = bus - i
modulus = bus
residues = iterative_crt(residues, moduli, residue, modulus)
moduli *= modulus
print(residues)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment