Advertisement
Guest User

Untitled

a guest
Jan 16th, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.65 KB | None | 0 0
  1. def smallest(n):
  2.     parents = {}
  3.     queue = [(1 % n, 1, None)]
  4.     i = 0
  5.     while i < len(queue):
  6.         residue, digit, parent = queue[i]
  7.         i += 1
  8.         if residue in parents:
  9.             continue
  10.         if residue == 0:
  11.             answer = []
  12.             while True:
  13.                 answer.append(str(digit))
  14.                 if parent is None:
  15.                     answer.reverse()
  16.                     return ''.join(answer)
  17.                 digit, parent = parents[parent]
  18.         parents[residue] = (digit, parent)
  19.         for digit in (0, 1):
  20.             queue.append(((residue * 10 + digit) % n, digit, residue))
  21.     return None
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement