Чередование в питоне

Перезадаю этот вопрос,но уже с самой задачой и полным решением.Я делал задачу, где надо было поочередно делить числа. Я эту проблему сделал вот таким способом:(задача:http://codeforces.com/problemset/problem/119/A)

#funct
def gcd(x,y):
    while x!=0 and y!=0:
        if x>y:
            x=x%y
        else:
            y=y%x
    return x+y

def chet(b,x,y,all):
    if b%2==1:
        all=all-gcd(x,all)
        if all==0:
            print("0")
    else:
        all=all-gcd(y,all)
        if all==0:
            print("1")

    return all


#program
sem,anti,all=map(int,input().split())
b=1
while all>0:
    all=chet(b,sem,anti,all)
    b+=1

но хочу услышать ваши способы.


Ответы (1 шт):

Автор решения: frozencoast

Я бы решил так:

data = list(map(int, input().split()))

# Наибольший общий делитель
def nod(x, y):
  if y > 0:
    k = x % y
    return nod(y, k) 
  else: 
    return x

player = 0

while data[2] > 0:
    data[2] -= nod(data[player], data[2])
    player = 1 - player

print(1 - player)
→ Ссылка