题目内容:输入两个正整数m和n,求其最大公约数和最小公倍数。 输入格式: 10,6 输出样例: 请输入两个正整数n,m: 它们的最大公约数为:2 它们的最小公倍数为:30
时间: 2024-11-18 18:16:20 浏览: 18
题目要求你编写一个程序,给定两个正整数`m`和`n`,你需要计算这两个数的最大公约数(Greatest Common Divisor, GCD)和最小公倍数(Least Common Multiple, LCM)。最大公约数通常是通过欧几里得算法(Euclidean Algorithm)来找到的,而最小公倍数可以用公式`LCM(a, b) = abs(a * b) / GCD(a, b)`来计算。
以下是使用Python的一个简单实现:
```python
def gcd(m, n):
while n != 0:
m, n = n, m % n
return m
def lcm(m, n):
return (m * n) // gcd(m, n)
m, n = map(int, input("请输入两个正整数n,m: ").split(','))
gcd_val = gcd(m, n)
lcm_val = lcm(m, n)
print(f"它们的最大公约数为: {gcd_val}")
print(f"它们的最小公倍数为: {lcm_val}")
```
当你运行这个程序并输入`10,6`时,它会输出最大公约数为2,最小公倍数为30,就像给出的输出样例一样。
相关问题
用C语言编写程序:最大公约数与最小公倍数。题目内容:编写两个函数,分别求两个整数的最大公约数和最小公倍数,并用主函数调用这两个函数,然后输出结果。两个整数由键盘输入。约定最大公约数为正整数,两数里有负的则最小公倍数就为负的。 输入格式:输入均不为0的整数n和m(n与m的乘积还在整数范围内)(两数之间用英文,隔开) 输出格式:输出这两个整数的最大公约数和最小公倍数(两结果之间用英文,隔开) 输入样例:24,36 输出样例:12,72 输入样例:-48,128 输出样例:16,-384 时间限制:500ms内存限制:32000kb
以下是该程序的C语言实现:
```c
#include <stdio.h>
#include <stdlib.h>
// 求两个数的最大公约数
int gcd(int a, int b) {
if (b == 0) {
return a;
}
return gcd(b, a % b);
}
// 求两个数的最小公倍数
int lcm(int a, int b) {
return abs(a * b) / gcd(a, b);
}
int main() {
int n, m;
scanf("%d,%d", &n, &m);
int result1 = gcd(n, m);
int result2 = lcm(n, m);
printf("%d,%d", result1, result2);
return 0;
}
```
程序中定义了两个函数gcd和lcm分别计算最大公约数和最小公倍数。最大公约数的计算采用了递归的方式,最小公倍数的计算则利用了最大公约数的结果。在主函数中,首先从键盘输入两个整数n和m,然后调用gcd和lcm函数计算最大公约数和最小公倍数,最后输出结果。需要注意的是,当n和m中有一个为负数时,最小公倍数为负数,因此在计算最小公倍数时需要加上取绝对值的操作。
python 题目描述:输入两个正整数 m和n,求解并输出给定两个整数的最小公倍数输入格式:在一行中输入两个整数m和n,整数之间用逗号隔开。输出格式:在一行中输出一个整数,即 m 和n的最小公倍数
解题思路:最小公倍数可以用两个数的乘积除以它们的最大公约数求得。
Python代码实现:
```python
m, n = map(int, input().split(',')) # 输入两个数,以逗号分隔
# 求最大公约数
def gcd(a, b):
if b == 0:
return a
else:
return gcd(b, a % b)
lcm = m * n // gcd(m, n) # 求最小公倍数
print(lcm) # 输出最小公倍数
```
输入样例:
```
2,3
```
输出样例:
```
6
```
阅读全文