[問題] ユークリッドの互除法#
「最大公約数を求める関数を実装しよう」
ユークリッドの互除法を使って、2つの数字の最大公約数を求める関数を作成しましょう!
ユークリッドの互除法
ユークリッドの互除法は,二つの自然数の最大公約数を求める方法で,「世界最古のアルゴリズム」として知られています.
【手順】
2つの自然数(a>b)のうち、大きい数aを小さい数bで割る
前の手順の除数bを前の手順の余りで割る
これを余りが 0 となるまで繰り返す
余りが 0 のときの除数が最大公約数
def euclidean_algorithm(a, b):
...
# 正解チェック
print(euclidean_algorithm(28, 20) == 4)
False
実装例#
Show code cell source
def euclidean_algorithm(a, b):
while a % b != 0:
c = a % b
a,b = b,c
return b
euclidean_algorithm(28, 28)
Show code cell output
28