鱼C论坛

 找回密码
 立即注册
查看: 1685|回复: 2

[作品展示] 求最小公约数

[复制链接]
发表于 2021-9-15 11:55:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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))
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-9-15 12:57:58 | 显示全部楼层
本帖最后由 傻眼貓咪 于 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

代碼:(沒有任何導入模塊)
  1. # 最大公因數/大公約數
  2. # Highest Common Factor/Greatest Common Divisor (gcd)

  3. def factor(num: int) -> int:
  4.     for n in range(1, num+1):
  5.         if not (num%n):
  6.             yield n

  7. a = int(input("輸入一個整數 a:"))
  8. b = int(input("輸入一個整數 b:"))

  9. gcd = max(set(factor(a))&set(factor(b)))
  10. 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

代碼:(沒有任何導入模塊)
  1. # 最小公倍數
  2. # Least Common Multiple (lcm)

  3. a = int(input("輸入一個整數 a:"))
  4. b = int(input("輸入一個整數 b:"))

  5. x, y = max(a, b), min(a, b)

  6. while True:
  7.     if x == y:
  8.         print(f"{a} 和 {b} 最小公倍數:{x}")
  9.         break
  10.     while y < x:
  11.         y += min(a, b)
  12.     while x < y:
  13.         x += max(a, b)
复制代码



代碼:導入模塊(math
  1. import math

  2. a = int(input("輸入一個整數 a:"))
  3. b = int(input("輸入一個整數 b:"))

  4. print(f"{a} 和 {b} 最大公約數:{math.gcd(a, b)}")
  5. print(f"{a} 和 {b} 最小公倍數:{math.lcm(a, b)}")
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-15 13:47:19 | 显示全部楼层
  1. >>> def gcd(x,y):
  2.     while y:
  3.         z = x%y
  4.         x = y
  5.         y = z
  6.     return(x)

  7. >>> gcd(22,33)
  8. 11
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-18 16:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表