写两个函数,分别求两个正整数的最大公约数和最小公倍数,用主函数完成两个正整数的输入和调用两个函数,并输出结果。(注:1能整除任意整数,但不被认为是公约数)
时间: 2024-12-20 18:30:01 浏览: 6
在编程中,我们可以使用欧几里得算法(也称为辗转相除法)来计算两个正整数的最大公约数(GCD),然后利用最大公约数来找到最小公倍数(LCM)。下面是使用Python编写的一个简单示例:
```python
def gcd(a, b): # 求最大公约数
while b != 0:
a, b = b, a % b
return a
def lcm(a, b): # 求最小公倍数
if a == 0 or b == 0: # 如果其中一个数为零,则直接取另一个数作为LCM
return max(a, b)
else:
lcm_num = abs(a * b) // gcd(a, b) # 根据公式 LCM(a, b) = |a*b| / GCD(a, b)
return lcm_num if a > 0 and b > 0 else -lcm_num # 确保结果为正
def main():
num1 = int(input("请输入第一个正整数: "))
num2 = int(input("请输入第二个正整数: "))
print(f"最大公约数 (GCD): {gcd(num1, num2)}")
print(f"最小公倍数 (LCM): {lcm(num1, num2)}")
if __name__ == "__main__":
main()
```
在这个程序中,`gcd()` 函数负责求解两数的最大公约数,而 `lcm()` 则利用 GCD 计算最小公倍数。用户通过 `main()` 函数输入两个数字,程序会调用这两个函数并输出结果。
阅读全文