计算2个非零正整数的最大公约数和最小公倍数,要求2个非零正整数从键盘输入。
时间: 2024-09-19 15:14:25 浏览: 36
python 输入两个正整数计算最大公约数和最小公倍数 示例
5星 · 资源好评率100%
计算两个非零正整数的最大公约数(Greatest Common Divisor,简称GCD)和最小公倍数(Least Common Multiple,简称LCM),通常采用欧几里得算法来求取最大公约数,然后利用公式 GCD(a, b) * LCM(a, b) = a * b 来计算最小公倍数。
以下是步骤:
1. **输入**:首先,你需要从键盘接收两个正整数a和b作为用户输入。
2. **求GCD**:使用辗转相除法(也称为欧几里得算法),通过不断将较大的数除以较小的数,并用余数替换较大数,直到余数为0。此时,较小的那个非零数就是最大公约数。
- 如果a % b == 0,则gcd = b
- 否则,gcd = gcd(b, a % b)
3. **求LCM**:由于 GCD(a, b) * LCM(a, b) = a * b,我们可以直接用ab除以GCD得到LCM。
- LCM(a, b) = (a * b) / gcd(a, b)
4. **输出结果**:最后,打印出这两个数的最大公约数和最小公倍数。
如果你需要实际的代码示例,我可以提供一段简单的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)
num1 = int(input("请输入第一个非零正整数:"))
num2 = int(input("请输入第二个非零正整数:"))
print(f"最大公约数(GCD): {gcd(num1, num2)}")
print(f"最小公倍数(LCM): {lcm(num1, num2)}")
```
阅读全文