最大公约数计算。从键盘接收两个整数,编写程序求出这两个整数的最大公约数和最小公倍数(提示:求最大公约数可用辗转相除法,求最小公倍数则用两 try-except 这 数的积除以最大公约数即可)。
时间: 2024-09-18 11:03:30 浏览: 49
python 输入两个正整数计算最大公约数和最小公倍数 示例
5星 · 资源好评率100%
最大公约数(Greatest Common Divisor,简称GCD)是两个或多个整数共有的最大的正因数。辗转相除法,也称为欧几里得算法,是一种常用的求解两个整数最大公约数的方法。基本步骤是:用较大数除以较小数,然后用余数替换原来较大的数,再继续做同样的除法操作,直到余数为0,此时的除数就是最大公约数。
对于两个整数a和b,可以按照以下步骤求它们的GCD:
1. 如果b为0,那么a即为最大公约数;
2. 否则,递归地计算b和a除以b的余数c的最大公约数,即GCD(b, a % b)。
至于最小公倍数(Least Common Multiple,简称LCM),可以用公式计算:两个数的乘积除以他们的最大公约数。Python代码示例如下:
```python
def gcd(a, b):
while b:
a, b = b, a % b
return a
def lcm(a, b):
return (a * b) // gcd(a, b)
try:
num1 = int(input("请输入第一个整数:"))
num2 = int(input("请输入第二个整数:"))
if num1 < 0 or num2 < 0:
raise ValueError("输入的数值应为非负整数")
result_gcd = gcd(num1, num2)
result_lcm = lcm(num1, num2)
print(f"两个数 {num1} 和 {num2} 的最大公约数是:{result_gcd}")
print(f"两个数 {num1} 和 {num2} 的最小公倍数是:{result_lcm}")
except ValueError as e:
print(e)
```
在这个程序中,用户会被提示输入两个整数,然后会计算并打印出它们的最大公约数和最小公倍数。如果输入了非整数或者负数,程序会捕获异常并显示错误信息。
阅读全文