Guest User

Untitled

a guest
Dec 14th, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.91 KB | None | 0 0
  1. from itertools import islice
  2. import sys
  3.  
  4. def Generate():
  5. scores = [3, 7]
  6. yield scores[0]
  7. yield scores[1]
  8. i = 0
  9. j = 1
  10. while True:
  11. x = scores[i] + scores[j]
  12. if x < 10:
  13. yield x
  14. scores.append(x)
  15. else:
  16. y = x // 10
  17. z = x % 10
  18. yield y
  19. yield z
  20. scores.append(y)
  21. scores.append(z)
  22. i = (i + 1 + scores[i]) % len(scores)
  23. j = (j + 1 + scores[j]) % len(scores)
  24.  
  25. def Part1(digits):
  26. pos = int(digits)
  27. return ''.join(map(str, islice(Generate(), pos, pos + 10)))
  28.  
  29. def Part2(digits):
  30. target = int(digits)
  31. modulus = 10**len(digits)
  32. current = 0
  33. for i, x in enumerate(Generate()):
  34. if current == target:
  35. return i - len(digits)
  36. current = (10*current + x) % modulus
  37.  
  38. digits = sys.stdin.readline().strip()
  39. print(Part1(digits))
  40. print(Part2(digits))
Add Comment
Please, Sign In to add comment