| 
 | 
 
 
发表于 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 
 
代碼:(沒有任何導入模塊) 
- # 最大公因數/大公約數
 
 - # 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)}")
 
  复制代码 |   
 
 
 
 |