请编写程序,输入两个整数,计算并输出它们的输出最小公倍数。 输入格式 两个整数 输出格式 最小公倍数(正整数) 说明:两个整数可以是正数、零和负数。最小公倍数必须是自然数。题目保证两个整数及其最小公倍数的绝对值都小于 2 63 。 输入样例1 935761 -5128800173759 输出样例1 4799331179396895599 输入样例2 -4187757414530339 587895547746 输出样例2 929682146025735258 输入样例3 7 0 输出样例3 0 输入样例4 0 0 输出样例4 0
时间: 2024-01-05 11:14:37 浏览: 37
以下是 Python3 代码实现:
```python
a, b = map(int, input().split())
def gcd(a, b):
if a == 0:
return b
return gcd(b % a, a)
if a == 0 or b == 0:
print(0)
else:
lcm = abs(a * b) // gcd(a, b)
print(lcm)
```
解释一下代码:
首先读入两个整数 a 和 b。
然后定义一个求最大公约数的函数 gcd(a, b)。
如果 a = 0,那么最大公约数就是 b。
否则,递归地求解 b % a 和 a 的最大公约数。
接下来,如果 a 或 b 有一个是零,那么最小公倍数就是零,直接输出 0。
否则,根据最小公倍数的定义,它等于 a 和 b 的乘积除以它们的最大公约数的绝对值。
最后输出最小公倍数 lcm。
相关问题
请编写程序,输入两个整数,计算并输出它们的输出最小公倍数。
好的,以下是程序的代码:
```
a = int(input("请输入第一个整数:"))
b = int(input("请输入第二个整数:"))
# 定义函数,用于计算最大公约数
def gcd(x, y):
if y == :
return x
else:
return gcd(y, x % y)
# 计算最小公倍数
lcm = a * b // gcd(a, b)
print("它们的最小公倍数为:", lcm)
```
程序的运行结果如下:
```
请输入第一个整数:12
请输入第二个整数:18
它们的最小公倍数为: 36
```
希望能够帮到您!
请编写程序,输入两个整数,计算并输出它们的输出最小公倍数,c语言
以下是使用辗转相除法计算最小公倍数的 C 语言程序:
```c
#include <stdio.h>
// 定义函数用于计算最大公约数
int gcd(int a, int b) {
if (b == 0) {
return a;
} else {
return gcd(b, a % b);
}
}
int main() {
int num1, num2, lcm;
printf("请输入两个正整数,以空格分隔:");
scanf("%d %d", &num1, &num2);
lcm = num1 * num2 / gcd(num1, num2); // 计算最小公倍数
printf("最小公倍数是:%d\n", lcm);
return 0;
}
```
我们先定义了一个 `gcd` 函数用于计算最大公约数。在 `main` 函数中,我们输入两个整数 `num1` 和 `num2`,然后计算它们的最小公倍数 `lcm`,最后输出最小公倍数的值。