求两个正整数的最小公倍数和最大公约数。要求能循环输入一对整数,至少使用一个用户自定义函数求其最大公约数或最小公倍数。公约数和公倍数都要在主函数中打印出来。
时间: 2024-11-22 10:43:30 浏览: 35
求两个正整数的最大公约数(Greatest Common Divisor, GCD)和最小公倍数(Least Common Multiple, LCM)通常需要借助欧几里得算法来计算GCD,然后利用公式 `LCM(a, b) = |a * b| / GCD(a, b)` 来求得。
在Python中,你可以创建两个用户自定义函数,`gcd` 和 `lcm`,分别用于计算最大公约数和最小公倍数。下面是一个简单的示例:
```python
def gcd(a, b):
while b != 0:
a, b = b, a % b
return a
def lcm(a, b):
return abs(a * b) // gcd(a, b)
while True:
try:
num1 = int(input("请输入第一个正整数 (输入 'q' 结束): "))
if num1 == 'q':
break
num2 = int(input("请输入第二个正整数: "))
result_gcd = gcd(num1, num2)
result_lcm = lcm(num1, num2)
print(f"这两个数字的最大公约数是: {result_gcd}")
print(f"这两个数字的最小公倍数是: {result_lcm}")
except ValueError:
print("输入无效,请输入正整数或 'q' 结束程序.")
阅读全文