ユークリッドの互除法(練習)

pythonの練習中。

練習問題:ユークリッドの互除法

2つの数字(入力)から、最大公約数を算出

python3.6

 

コード

# coding:utf-8

#2つの数字の入力

a = []
a = list(input().split())          #入力受付
a=list(map(int,a))     #文字列→整数化
a.sort(reverse=True)   #大→小のソート

i=0
while a[i]%a[i+1]!=0:
a.append(a[i]%a[i+1])
i += 1

print("最大公約数は{0}です".format(a[-1]))

 

数字入力:1071 1029

アウトプット:最大公約数は21です

 

合っているかどうか分かりませんが、何とか算出できるようになったのではと思います。もっと効率的に出来る方法があればご教示頂ければと思います。