用python 编写程序,编写程序,从键盘输入两个正整数,计算并输出这两个数的最大公约数和最大公倍数。。用三种不同的方式
时间: 2024-03-26 12:39:50 浏览: 70
4_commondevisor_
好的,我可以为您提供三种不同的方法来解决这个问题。
方法一:使用 math 模块中的 gcd 函数和 lcm 函数
```python
import math
# 方法一:使用 math 模块中的 gcd 函数和 lcm 函数
a = int(input("请输入第一个正整数:"))
b = int(input("请输入第二个正整数:"))
gcd = math.gcd(a, b)
lcm = a * b // math.gcd(a, b)
print("{0}和{1}的最大公约数为{2},最小公倍数为{3}".format(a, b, gcd, lcm))
```
方法二:使用循环和条件语句
```python
# 方法二:使用循环和条件语句
a = int(input("请输入第一个正整数:"))
b = int(input("请输入第二个正整数:"))
if a > b:
a, b = b, a
for i in range(a, 0, -1):
if a % i == 0 and b % i == 0:
gcd = i
break
lcm = a * b // gcd
print("{0}和{1}的最大公约数为{2},最小公倍数为{3}".format(a, b, gcd, lcm))
```
方法三:使用递归函数
```python
# 方法三:使用递归函数
def gcd(a, b):
if a % b == 0:
return b
else:
return gcd(b, a % b)
a = int(input("请输入第一个正整数:"))
b = int(input("请输入第二个正整数:"))
gcd = gcd(a, b)
lcm = a * b // gcd
print("{0}和{1}的最大公约数为{2},最小公倍数为{3}".format(a, b, gcd, lcm))
```
以上三种方法都可以得到正确的结果,即计算并输出这两个数的最大公约数和最大公倍数。其中第一种方法使用 math 模块中的 gcd 函数和 lcm 函数,第二种方法使用循环和条件语句,第三种方法使用递归函数。
阅读全文