Для игры, описанной в задании 19, найдите минимальное значение S, при котором у Вани есть стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети, но у Вани нет стратегии, которая позволила бы ему гарантированно выиграть первым ходом.
Приведём решение на языке Python.
def f(x, h):
delit = [k for k in range(2, 10) if x % k == 0]
if x <= 15:
return h % 2 == 0
elif h == 0:
return 0
elif not any(x % k == 0 for k in range(2, 10)):
x -= 1
elif (h-1)%2 ==0:
return any(f(x-k, h-1) for k in delit)
else:
return all(f(x-k, h-1) for k in delit)
for x in range(16, 100):
if not (f(x,2)) and f(x,4):
print('Задача 21:',x)
break
Ответ: 26.

