编写两个函数,用于计算两个整数的最大公约数和最小公倍数
时间: 2023-12-10 14:22:37 浏览: 54
def gcd(a, b):
"""
计算两个整数的最大公约数
"""
if b == 0:
return a
else:
return gcd(b, a % b)
def lcm(a, b):
"""
计算两个整数的最小公倍数
"""
return a * b // gcd(a, b)
相关问题
编写两个函数,分别计算两个正整数的最小公倍数和最大公约数的函数
在编写这样的功能时,我们可以利用辗转相除法(欧几里得算法)来求解最大公约数(GCD),然后通过最大公约数来找到最小公倍数(LCM)。以下是Python的一个示例:
```python
def gcd(a, b):
"""
计算两个正整数的最大公约数 (Greatest Common Divisor)
参数:
a, b (int): 需要计算最大公约数的正整数
返回值:
int: a和b的最大公约数
"""
while b != 0:
a, b = b, a % b
return a
def lcm(a, b):
"""
计算两个正整数的最小公倍数 (Least Common Multiple)
参数:
a, b (int): 需要计算最小公倍数的正整数
使用 GCD 来计算 LCM,公式为:lcm(a, b) = |a * b| / gcd(a, b)
返回值:
int: a和b的最小公倍数
"""
return abs(a * b) // gcd(a, b)
# 示例
num1 = 48
num2 = 18
print(f"最大公约数 (GCD): {gcd(num1, num2)}")
print(f"最小公倍数 (LCM): {lcm(num1, num2)}")
编程函数计算两个正整数的最大公约数和最小公倍数
在编程中,计算两个正整数的最大公约数 (Greatest Common Divisor, GCD) 和最小公倍数 (Least Common Multiple, LCM) 是常见的数学运算任务。可以使用欧几里得算法 (Euclidean Algorithm) 来找到最大公约数,而最小公倍数可以用这两个数乘以彼此除以最大公约数得到。
以下是使用 Python 实现的一个例子:
```python
def gcd(a, b):
while b != 0:
a, b = b, a % b
return a
def lcm(a, b):
return abs(a * b) // gcd(a, b)
# 用户输入
num1 = int(input("请输入第一个正整数: "))
num2 = int(input("请输入第二个正整数: "))
# 计算并打印结果
gcd_result = gcd(num1, num2)
lcm_result = lcm(num1, num2)
print(f"两个数的最大公约数是: {gcd_result}")
print(f"两个数的最小公倍数是: {lcm_result}")
阅读全文