最大公約數
""
"最大公約數的求法:
64 48"""
x = int(input(
'x='
))y = int(input(
'y='
))if x>y:
x,y = y,x
for factor in range(x,0,-1):
if x%factor==0 and y%factor==0:
print(
'{}和{}的最大公約數是{}'.format(x,y,factor))
break
x=24
y=36
24和36的最大公約數是12
法二:2⃣️
輾轉相除法:
144 108
36108 36
0
""
"x = int(input('x='))
y = int(input('y='))
if x>y:
x,y = y,x
while x!=0:
temp = y%x
y = x
x = temp
print(y)"""
# easier edition
x = int(input(
'x='
))y = int(input(
'y='
))if x>y:
x,y = y,x
c,d = x,y
while x!=0:
y,x = x,y%x
print(
'{}和{}的最大公約數是{}'.format(c,d,y))
x=260
y=138
138和260的最大公約數是2
···
最小公倍數
法一:先求出最大公倍數,再求出最小公倍數
# 最小公倍數
# first solution
x = int(input(
'x='
))y = int(input(
'y='
))if x>y:
x,y = y,x
for factor in range(x,0,-1):
if x%factor==0 and y%factor==0:
n = x*y//factor
print(
'{}和{}的最小公倍數是{}'.format(x,y,n))
break
x=28
y=42
28和42的最小公倍數是84
法二:同樣用輾轉相除法
#second solution
x = int(input(
'x='
))y = int(input(
'y='
))if x>y:
x,y = y,x
c,d = x,y
while x!=0:
y,x = x,y%x
n = c*d//y
print(
'{}和{}的最小公倍數是{}'.format(c,d,n))
x=82
y=58
58和82的最小公倍數是2378
求最大公約數,最小公倍數
歐幾里德遞迴演算法,大數對小數取餘直到小數為0,大數為最大公約數 param m param n return static int maxcommondivisor euclid recursion int m,int n return m 劉徽兩數相減直到兩數相等,等數為最大公約數 param ...
求最大公約數和最小公倍數
本篇文章中求最大公約數的方法是輾轉相除法,又稱歐幾里德演算法 方法是用較大的數除以較小的數,求得餘數,將餘數變成除數,除數變成被除數,重複這個過程,直到餘數變成0。而求最小公倍數的方法則是用原本兩個數的乘積除以最大公約數。define crt select no warings include in...
求最大公約數和最小公倍數
輾轉相除法求最大公因數 輾轉相除法 簡單來說 兩個數,用較大的數除以較小的數,得到第一餘數,在用較小的數除以第乙個餘數,得到第二餘數,在用第二個餘數除以第一餘數,重複過程,直到到餘數為0 那麼最後乙個餘數就是這兩個數的最大公約數 舉例說明 a 36,b 10 1.36除以10得3,餘6 2.10除以...