用python编写一个函数:从键盘上输入两个数,求最大公约数和最小公倍数,如果输入的第一个数小于第二个数时,需要交换
时间: 2024-05-09 13:17:32 浏览: 17
这个函数的程序是:
```python
def gcd_lcm():
num1 = int(input("请输入第一个数:"))
num2 = int(input("请输入第二个数:"))
if num1 < num2:
num1, num2 = num2, num1
# 求最大公约数
i = num2
while i > 1:
if num1 % i == 0 and num2 % i == 0:
gcd = i
break
i -= 1
else:
gcd = 1
# 求最小公倍数
lcm = num1 * num2 // gcd
print("最大公约数为:%d,最小公倍数为:%d" % (gcd, lcm))
gcd_lcm()
```
请问,这个函数的时间复杂度是多少?
相关问题
python编写一个函数 从键盘输入两个数 求最大公约数和最小公倍数
可以使用辗转相除法来求最大公约数,最小公倍数可以通过最大公约数求得。
代码如下:
```python
def gcd(a, b):
while b != 0:
a, b = b, a % b
return a
def lcm(a, b):
return a * b // gcd(a, b)
if __name__ == '__main__':
a = int(input("请输入第一个数:"))
b = int(input("请输入第二个数:"))
print("最大公约数为:", gcd(a, b))
print("最小公倍数为:", lcm(a, b))
```
输入两个数后,程序会输出它们的最大公约数和最小公倍数。
编写一个函数,从键盘上输入两个数,求最大公约数和最小公倍数
以下是Python代码实现:
```python
def gcd(a, b):
"""
求最大公约数
"""
if b == :
return a
else:
return gcd(b, a % b)
def lcm(a, b):
"""
求最小公倍数
"""
return a * b // gcd(a, b)
# 从键盘上输入两个数
a = int(input("请输入第一个数:"))
b = int(input("请输入第二个数:"))
# 求最大公约数和最小公倍数
print("最大公约数为:", gcd(a, b))
print("最小公倍数为:", lcm(a, b))
```
运行结果:
```
请输入第一个数:12
请输入第二个数:18
最大公约数为: 6
最小公倍数为: 36
```