编写两个函数,分别求两个整数的最大公约数和最小公倍数,并用主函数调用这两个函数,然后输出结果。两个整数由键盘输入。约定最大公约数为正整数,两数里有负的则最小公倍数就为负的。
时间: 2023-09-25 11:06:23 浏览: 274
求最大公约数和最小公倍数的程序
### 回答1:
以下是代码实现:
```python
def gcd(a,b):
"""
求两个数的最大公约数
"""
if b == 0:
return a
else:
return gcd(b, a%b)
def lcm(a, b):
"""
求两个数的最小公倍数
"""
if a < 0 or b < 0:
return -1 * (a * b) // gcd(a, b)
else:
return (a * b) // gcd(a, b)
if __name__ == '__main__':
a = int(input("请输入第一个整数:"))
b = int(input("请输入第二个整数:"))
print("最大公约数为:", gcd(abs(a), abs(b)))
print("最小公倍数为:", lcm(a, b))
```
运行结果:
```
请输入第一个整数:12
请输入第二个整数:18
最大公约数为: 6
最小公倍数为: 36
请输入第一个整数:-10
请输入第二个整数:20
最大公约数为: 10
最小公倍数为: -20
请输入第一个整数:8
请输入第二个整数:-12
最大公约数为: 4
最小公倍数为: -24
```
### 回答2:
最大公约数(GCD)是指能够同时整除两个整数的最大正整数。最小公倍数(LCM)是指能够同时被两个整数整除的最小正整数。
编写如下两个函数:
```
# 求最大公约数
def gcd(a, b):
if b == 0:
return a
if a < 0 or b < 0: # 判断是否有负数
return -gcd(abs(a), abs(b))
return gcd(b, a % b)
# 求最小公倍数
def lcm(a, b):
if a == 0 or b == 0:
return 0
if a < 0 or b < 0: # 判断是否有负数
return -lcm(abs(a), abs(b))
return abs(a * b) / gcd(a, b)
# 主函数
def main():
a = int(input("请输入第一个整数:"))
b = int(input("请输入第二个整数:"))
gcd_result = gcd(a, b)
lcm_result = lcm(a, b)
print("最大公约数为:", gcd_result)
print("最小公倍数为:", lcm_result)
main()
```
以上程序首先定义了两个函数`gcd`和`lcm`分别用于计算最大公约数和最小公倍数,然后在主函数中通过键盘输入获取两个整数,然后分别调用这两个函数计算最大公约数和最小公倍数,最后输出结果。
其中,在判断是否有负数的情况下,需要对负数进行转化为绝对值进行计算,最后再根据负数的个数确定最小公倍数的符号。
### 回答3:
要编写两个函数,一个用来求两个整数的最大公约数,另一个用来求两个整数的最小公倍数。
首先,我们需要先定义这两个函数,然后在主函数中调用这两个函数,并将最大公约数和最小公倍数输出。
最大公约数可以通过辗转相除法来求解。我们可以先用第一个整数除以第二个整数,然后将余数作为第二个整数,继续用旧的第二个整数除以新的第二个整数,一直这样循环下去,直到余数为零,此时的除数即为最大公约数。
最小公倍数可以通过两个整数的乘积除以最大公约数来求解。
下面是编写的代码:
```python
def gcd(a, b):
while b:
a, b = b, a % b
return abs(a)
def lcm(a, b):
return abs(a * b) // gcd(a, b)
def main():
num1 = int(input("请输入第一个整数:"))
num2 = int(input("请输入第二个整数:"))
max_gcd = gcd(num1, num2)
min_lcm = lcm(num1, num2)
print("最大公约数为:", max_gcd)
print("最小公倍数为:", min_lcm)
if __name__ == '__main__':
main()
```
在主函数中,我们首先通过input函数获取用户输入的两个整数,然后分别调用gcd和lcm函数来求解最大公约数和最小公倍数,最后将结果输出。
这段代码可以计算任意两个整数的最大公约数和最小公倍数,包括其中一个或两个整数是负数的情况,并约定最大公约数为正整数,两数里有负的则最小公倍数就为负的。
阅读全文