求最小公约数
x = int(input('请输入一个整数:'))y = int(input('请输入一个整数:'))
c = 0
if x>y:
big = x
small = y
elif x<y:
small = x
big = y
else:
small = x
big=y
c+=1
a = big % small
while a != 0 and c!=0:
small = big = a
a = big % small
print('最大公约数为:'+ str(small)) 本帖最后由 傻眼貓咪 于 2021-9-15 12:59 编辑
最大公因數/最大公約數 Highest Common Factor/Greatest Common Divisor (gcd)
範例:
54 的正因數為:1, 2, 3, 6, 9, 18, 27, 54
24 的正因數為:1, 2, 3, 4, 6, 8, 12, 24
54 和 24 的共同公因數:1, 2, 3, 6
54 和 24 的最大公因數為:6
代碼:(沒有任何導入模塊)
# 最大公因數/大公約數
# Highest Common Factor/Greatest Common Divisor (gcd)
def factor(num: int) -> int:
for n in range(1, num+1):
if not (num%n):
yield n
a = int(input("輸入一個整數 a:"))
b = int(input("輸入一個整數 b:"))
gcd = max(set(factor(a))&set(factor(b)))
print(f"{a} 和 {b} 最大公約數:{gcd}")
最小公倍數 Least Common Multiple (lcm)
範例:
18 的倍數為:18, 36, 54, 72, 90, 108, 126, 144...
12 的倍數為:12, 24, 36, 48, 60, 72, 84, 96, 108, 120, 132...
18 和 12 的最小公倍數:36
代碼:(沒有任何導入模塊)
# 最小公倍數
# Least Common Multiple (lcm)
a = int(input("輸入一個整數 a:"))
b = int(input("輸入一個整數 b:"))
x, y = max(a, b), min(a, b)
while True:
if x == y:
print(f"{a} 和 {b} 最小公倍數:{x}")
break
while y < x:
y += min(a, b)
while x < y:
x += max(a, b)
代碼:導入模塊(math)
import math
a = int(input("輸入一個整數 a:"))
b = int(input("輸入一個整數 b:"))
print(f"{a} 和 {b} 最大公約數:{math.gcd(a, b)}")
print(f"{a} 和 {b} 最小公倍數:{math.lcm(a, b)}") >>> def gcd(x,y):
while y:
z = x%y
x = y
y = z
return(x)
>>> gcd(22,33)
11
页:
[1]