从键盘接收两个整数,编写程序求出这两个整数的最大公约数和最小公倍数(提示:求最大公约数可用辗转相除法,求最小公倍数则用两数的积除以最大公约数即可)python
时间: 2023-09-29 10:10:58 浏览: 92
可以使用辗转相除法来求两个整数的最大公约数,再用两数的积除以最大公约数来求最小公倍数。一个可能的实现如下:
```python
def gcd(a, b):
while b:
a, b = b, a % b
return a
while True:
try:
x = int(input("请输入第一个整数:"))
y = int(input("请输入第二个整数:"))
break
except ValueError:
print("输入错误,请输入整数。")
if x > y:
x, y = y, x # 交换 x 和 y
g = gcd(x, y)
l = x * y // g
print("最大公约数是:", g)
print("最小公倍数是:", l)
```
这段程序首先使用 try-except 语句从键盘接收两个整数,如果输入的不是整数,会提示输入错误并要求重新输入。然后根据辗转相除法求出最大公约数,再用两数的积除以最大公约数求出最小公倍数。最后输出结果。
相关问题
最大公约数计算从键盘接收两个整数编写程序求出这两个整数的最大公约数和最小公倍数。
最大公约数(Greatest Common Divisor,简称GCD)是指两个或多个整数共有的最大的正因数。计算两个整数的最大公约数通常可以使用欧几里得算法(Euclidean Algorithm),也称为辗转相除法。以下是基于这个算法的一个简单程序示例:
```python
def gcd(a, b):
while b != 0:
a, b = b, a % b
return a
# 用户输入
num1 = int(input("请输入第一个整数:"))
num2 = int(input("请输入第二个整数:"))
# 计算最大公约数
gcd_value = gcd(num1, num2)
# 计算最小公倍数(这里我们假设a和b互质,因为如果它们有公共因子,那么它们的乘积就是最小公倍数)
lcm_value = num1 * num2 // gcd_value
print(f"两个数字 {num1} 和 {num2} 的最大公约数是 {gcd_value}")
print(f"两个数字 {num1} 和 {num2} 的最小公倍数是 {lcm_value}")
从键盘接收两个整数编写程序求出这两个整数的最大公约数和最小公倍数,可使用辗转相除法
以下是Python代码实现:
```python
a = int(input("请输入第一个整数:"))
b = int(input("请输入第二个整数:"))
# 求最大公约数
def gcd(a, b):
if b == 0:
return a
return gcd(b, a % b)
# 求最小公倍数
def lcm(a, b):
return a * b // gcd(a, b)
print("最大公约数为:", gcd(a, b))
print("最小公倍数为:", lcm(a, b))
```
运行结果:
```
请输入第一个整数:12
请输入第二个整数:18
最大公约数为: 6
最小公倍数为: 36
```
阅读全文