输入两个正整数m、n,求其最大公约数和最小公倍数
时间: 2023-11-03 15:03:02 浏览: 69
最大公约数可以使用辗转相除法求得:
1. 如果m小于n,则交换m和n。
2. 用n去除m,得到余数r。
3. 如果r等于0,则n即为最大公约数。
4. 如果r不等于0,则将n赋值给m,将r赋值给n,再执行第2步。
Python代码如下:
```
def gcd(m, n):
if m < n:
m, n = n, m
while n != 0:
r = m % n
m, n = n, r
return m
```
最小公倍数可以通过最大公约数和两数之积的关系求得:
最小公倍数 = m * n / 最大公约数
Python代码如下:
```
def lcm(m, n):
return m * n // gcd(m, n)
```
完整代码如下:
```
def gcd(m, n):
if m < n:
m, n = n, m
while n != 0:
r = m % n
m, n = n, r
return m
def lcm(m, n):
return m * n // gcd(m, n)
m = int(input('请输入一个正整数m:'))
n = int(input('请输入一个正整数n:'))
print('最大公约数为:', gcd(m, n))
print('最小公倍数为:', lcm(m, n))
```
相关问题
输入两个正整数m n 求其最大公倍数和最小公约数
好的,您输入的两个正整数分别为m和n,我来回答您的问题:
首先,最大公倍数(简称最大公约数)是指能同时整除m和n的最大正整数。可以通过辗转相除法来求得最大公约数,具体步骤如下:
1. 用较大的数除以较小的数,得到余数
2. 用上一步得到的余数去除较小的数,再得到余数
3. 重复上一步,直到余数为0,此时较小的数即为最大公约数
其次,最小公倍数是指m和n的公共倍数中最小的那个数。可以通过以下公式来求得最小公倍数:
最小公倍数 = m * n / 最大公约数
因此,根据上述方法,m和n的最大公约数为x,最小公倍数为y,则有:
x = (m,n)
y = m * n / x
希望能够帮助您解决问题,如果您还有其他问题,请继续提问。
输入两个正整数m,求其最大公因数和最小公倍数
最大公因数可以用辗转相除法,也叫欧几里得算法,来求解。具体步骤如下:
1. 用较大数除以较小数,得到余数r(余数不为0);
2. 用上一步得到的余数r去除上一步的除数,得到新的余数;
3. 重复步骤2,直到余数为0为止,此时除数就是最大公因数。
代码如下:
```python
def gcd(m, n):
while n:
m, n = n, m % n
return m
```
最小公倍数可以用最大公因数来求解,公式为:两数的乘积除以最大公因数。代码如下:
```python
def lcm(m, n):
return m * n // gcd(m, n)
```
完整代码如下:
```python
def gcd(m, n):
while n:
m, n = n, m % n
return m
def lcm(m, n):
return m * n // gcd(m, n)
m = int(input('请输入第一个正整数:'))
n = int(input('请输入第二个正整数:'))
print('最大公因数为:', gcd(m, n))
print('最小公倍数为:', lcm(m, n))
```
阅读全文