求两数的最大公约数和最小公倍数 输入两个正整数m和n,求其最大公约数和最小公倍数 输入说明: 两个正整数 输出说明: 最大公约数最小公倍数
时间: 2023-11-23 11:06:18 浏览: 87
以下是求两数的最大公约数和最小公倍数的Python代码:
```python
def gcd(a, b):
"""
求a和b的最大公约数
"""
if b == 0:
return a
else:
return gcd(b, a % b)
def lcm(a, b):
"""
求a和b的最小公倍数
"""
return a * b // gcd(a, b)
m, n = map(int, input().split())
print("最大公约数为:", gcd(m, n))
print("最小公倍数为:", lcm(m, n))
```
相关问题
求两数的最大公约数和最小公倍数 输入两个正整数m和n,求其最大公约数和最小公倍数
最大公约数是指两个或多个整数共有约数中最大的一个,最小公倍数是指两个或多个整数公有的倍数中最小的一个。求两个数的最大公约数和最小公倍数可以使用辗转相除法和两数之积除以它们的最大公约数的方法。具体步骤如下:
1. 输入两个正整数m和n。
2. 判断m和n的大小关系,如果m小于n,则交换m和n的值。
3. 使用辗转相除法求出m和n的最大公约数,具体方法是用较大数除以较小数,将余数作为新的较大数,原来的较小数作为新的较小数,再用新的较大数除以新的较小数,直到余数为0,此时的较小数就是最大公约数。
4. 使用两数之积除以它们的最大公约数的方法求出m和n的最小公倍数,具体方法是将m和n相乘,再除以它们的最大公约数。
下面是一个C语言的示例代码:
```c
#include <stdio.h>
int main() {
int m, n, a, b, t, r, lcm;
printf("请输入两个数字:\n");
scanf("%d %d", &m, &n);
a = m;
b = n;
// 求最大公约数
while (b != 0) {
t = b;
b = a % b;
a = t;
}
printf("这两个数的最大公约数是%d\n", a);
// 求最小公倍数
lcm = m * n / a;
printf("这两个数的最小公倍数是%d\n", lcm);
return 0;
}
```
C语言实现求两数的最大公约数和最小公倍数 输入两个正整数m和n,求其最大公约数和最小公倍数
以下是两种C语言实现求两数的最大公约数和最小公倍数的方法:
1. 碾转相除法
```c
#include <stdio.h>
#include <math.h>
int main() {
int m, n, i, temp, temp1;
printf("输入两个整数以,隔开\n");
scanf("%d,%d", &m, &n);
temp1 = m * n; //两数的积
i = n;
if (n > m) { //判断大数做被除数
temp = m;
m = n;
n = temp;
}
while (n != 0) {
temp = m % n; //碾转相除法得最小公倍数
m = n;
n = temp;
}
printf("最小公倍数:%d\n", m);
printf("最大公约数:%d", temp1 / m);
return 0;
}
```
2. 分解质因数法
```c
#include <stdio.h>
#include <math.h>
int main() {
int m, n, s, i;
scanf("%d,%d", &m, &s);
printf("%d,%d 的最大公约数是:", m, s);
n = (m > s) ? s : m;
for (i = n; i > 0; i--) {
if ((m % i != 0) || (s % i != 0)) continue;
printf("%2d\n", i);
printf("最小公倍数%5d", m * s / i);
return 0;
}
return 0;
}
```
阅读全文