python1.编写函数,求两数的最大公因数与最小公倍数
时间: 2024-12-11 08:40:38 浏览: 22
在Python中,我们可以使用辗转相除法(也叫欧几里得算法)来计算两个数的最大公约数(Greatest Common Divisor,简称GCD),然后利用公式 `lcm(a, b) = |a * b| / gcd(a, b)` 来找到它们的最小公倍数(Least Common Multiple,简称LCM)。以下是相应的函数实现:
```python
def gcd(a, b):
"""Euclidean algorithm to find the GCD of two numbers."""
while b != 0:
a, b = b, a % b
return a
def lcm(a, b):
"""Calculate the LCM using the formula lcm(a, b) = |a * b| / gcd(a, b)."""
return abs(a * b) // gcd(a, b)
# 使用示例
num1 = int(input("请输入第一个数字: "))
num2 = int(input("请输入第二个数字: "))
gcd_value = gcd(num1, num2)
lcm_value = lcm(num1, num2)
print(f"最大公约数 (GCD): {gcd_value}")
print(f"最小公倍数 (LCM): {lcm_value}")
相关问题
python编写一个函数,求两数最大公因数和最小公陪数
在Python中,我们可以使用欧几里得算法(Euclidean algorithm)来计算两个数的最大公约数(Greatest Common Divisor, GCD),然后通过最大公约数来找到最小公倍数(Least Common Multiple, LCM)。这里是一个简单的函数实现:
```python
def gcd(a, b):
"""计算两数的最大公因数"""
while b != 0:
a, b = b, a % b
return a
def lcm(a, b):
"""计算两数的最小公倍数,利用gcd"""
return abs(a * b) // gcd(a, b)
# 示例
def find_gcd_lcm(num1, num2):
print(f"最大公因数 (GCD): {gcd(num1, num2)}")
print(f"最小公倍数 (LCM): {lcm(num1, num2)}")
# 调用函数
find_gcd_lcm(48, 18)
```
当你运行上述代码,它会打印出48和18的最大公因数和最小公倍数。
python1.编写函数,接收2个正整数作为参数,求2个数的最大公约数和最小公倍数,结果返回一个元组,其中第一个元素为最大公约数,第二个元素为最小公倍数代码及注释
以下是求解最大公约数和最小公倍数的 Python 代码及注释:
```python
def gcd_lcm(a, b):
"""
求解2个正整数的最大公约数和最小公倍数
:param a: 正整数1
:param b: 正整数2
:return: 返回一个元组,第一个元素为最大公约数,第二个元素为最小公倍数
"""
# 求最大公约数
gcd = 1 # 初始化最大公约数为1
for i in range(1, min(a, b) + 1): # 从1到a和b中的最小值遍历
if a % i == 0 and b % i == 0: # 如果i同时是a和b的因数
gcd = i # 更新最大公约数
# 求最小公倍数
lcm = a * b // gcd # 最小公倍数等于a和b的乘积除以最大公约数
# 返回结果
return gcd, lcm
```
使用示例:
```python
# 调用函数求解最大公约数和最小公倍数
result = gcd_lcm(12, 18)
# 输出结果
print("最大公约数为:", result[0])
print("最小公倍数为:", result[1])
```
输出结果:
```
最大公约数为: 6
最小公倍数为: 36
```
阅读全文