Python求两个正整数的最大公约数和最小公倍数
时间: 2023-10-11 12:27:58 浏览: 138
可以使用辗转相除法求最大公约数,最小公倍数可以通过最大公约数求得。
以下是Python代码实现:
```python
def gcd(a, b):
while b:
a, b = b, a % b
return a
def lcm(a, b):
return a * b // gcd(a, b)
num1 = int(input("请输入第一个正整数:"))
num2 = int(input("请输入第二个正整数:"))
print(f"{num1}和{num2}的最大公约数是{gcd(num1, num2)}")
print(f"{num1}和{num2}的最小公倍数是{lcm(num1, num2)}")
```
输入示例:
```
请输入第一个正整数:12
请输入第二个正整数:18
```
输出示例:
```
12和18的最大公约数是6
12和18的最小公倍数是36
```
相关问题
python求两个正整数的最大公约数和最小公倍数
最大公约数(GCD)是两个或多个整数的最大公因数,最小公倍数(LCM)是两个或多个整数的最小公倍数。
求两个正整数的最大公约数可以使用欧几里得算法,也称为辗转相除法。该算法的基本思想是,用较小的数除以较大的数,将余数作为新的被除数,原来的除数作为新的除数,重复这个过程,直到余数为,此时除数就是最大公约数。
求两个正整数的最小公倍数可以使用最大公约数来计算。最小公倍数等于两个数的乘积除以它们的最大公约数。
例如,对于正整数12和18,它们的最大公约数是6,最小公倍数是36。
辗转相除法求两个正整数最大公约数和最小公倍数的代码python
以下是求两个正整数最大公约数和最小公倍数的辗转相除法代码:
```python
def gcd(a, b):
while b:
a, b = b, a % b
return a
def lcm(a, b):
return a * b // gcd(a, b)
```
其中,`gcd` 函数用于求最大公约数,`lcm` 函数用于求最小公倍数。辗转相除法的思路是用较小的数去除较大的数,然后用余数去除较小的数,一直重复这个过程,直到余数为 0 为止。此时,较小的数即为最大公约数,较大的数与最大公约数的乘积即为最小公倍数。
阅读全文