Pythonでトス除算法を使用して、最大公約数と2つの整数の最小公倍数を見つける
最初に、m> nとなる2つの既知の正の整数mとnを取得します(ここでifステートメントを使用してmとnのサイズを決定し、次に3つのステートメントを使用してm> nにします)。次に例を示します。
if m < n:
t = n
n = m
m = t
mをnで除算して余りrを求めます。次に、剰余rが0かどうかを判断します。rが0
でない場合は、m = n、n = rに設定し、剰余r = 0になるまで除算を続けます。得られたmが最大公約数になります。
最大公約数が得られた後、最小公倍数は、2つの既知の正の整数の積を最大公倍数で割って得られる商です。
完全な例:
import random
m = random.randint(0, 100)
n = random.randint(0, 100)
print("整数1 = ", m)
print("整数2 = ", n)
if m < n:
t = n
n = m
m = t
# 辗转相除之前保留两个整数的值
a = m
b = n
while n != 0:
r = m % n
m = n
n = r
print("最大公约数为:", m)
print("最小公倍数为:", int((a * b)/m))
出力結果:
整数1 = 88
整数2 = 16
最大公约数为: 8
最小公倍数为: 176