Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from functools import lru_cache
- inpt = open("input.txt").read().split('\n')
- @lru_cache()
- def get_public_key(subject_num, loop_size, num = 1):
- if loop_size < 1:
- return num
- return get_public_key(subject_num, loop_size-1, (num * subject_num) % 20201227)
- def do_stuff(subject_num, loop_size):
- num=1
- for i in range(loop_size):
- num = (num * subject_num) % 20201227
- return num
- card_public = int(inpt[0])
- door_public = int(inpt[1])
- card_loop = -1
- door_loop = -1
- card_test = 1
- door_test = 1
- # for card in range(499):
- # if get_public_key(7, card+1) == card_public:
- # card_loop = card+1
- # break
- #
- # for door in range(499):
- # if get_public_key(7, door+1) == door_public:
- # door_loop = door + 1
- # break
- for card in range(100000000000):
- card_test = (card_test * 7) % 20201227
- if card_test == card_public:
- card_loop = card + 1
- break
- for door in range(100000000000):
- door_test = (door_test * 7) % 20201227
- if door_test == door_public:
- door_loop = door + 1
- break
- # 14640514 - card, 16754596 - door
- assert card_loop != -1 and door_loop != -1
- print(do_stuff(do_stuff(7, card_loop), door_loop))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement