x,y=map(int,input().split())
def test(x,y):
while 0<x<2**31 and 0<y<2**31:
if x>y:
x=x-y
elif y>x:
y=y-x
elif x==y:
x=y-x
y=y
if x==0:
return y
elif y==0:
return x
print(test(x,y))
問題應該就出在你寫的輾轉相除法不夠有效率,可以試試看用餘數運算子 %
來處理。以兩正整數 x y
來說
while x >= y: x -= y
可以精簡成
x %= y
再善用輾轉相除法的交換式 ,可以讓程式寫得更精簡,尤其 Python 的 swap 可以寫得很簡單
a, b = b, (a % b)