# создается массив путей [n]
# каждый возможный следующий путь записывается в новый сет
# если в одном из путей n стало равно 1, возвращается количество шагов
def solve(n):
ways = [n]
count = 0
while(True):
newWays = set()
for x in ways:
if x == 1:
return count
if x % 3 == 0:
newWays.add(x / 3)
if x % 2 == 0:
newWays.add(x / 2)
newWays.add(x - 1)
ways = newWays
count += 1
print(solve(9))
print(solve(10**6))
Last active
June 16, 2018 07:34
-
-
Save KolosovAO/8567a66c873fb2b9f8ac72f1cc7147a4 to your computer and use it in GitHub Desktop.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment