② 用4. 求两个整数的最大公约数和最小公倍数,用一个函数求最大公约数。用另一个函数根据求出的最大公约数求最小公倍数。全局变量的方法,分别用两个函数求最大公约数和最小公倍数,但其值不由函数带回。将最大公约数和最小公倍数都设为全局变量,在主函数中输出他们的值。
时间: 2024-12-29 08:31:37 浏览: 17
在编程中,要计算两个整数的最大公约数(Greatest Common Divisor, GCD)和最小公倍数(Least Common Multiple, LCM),可以采用欧几里得算法(Euclidean Algorithm)来求解GCD,然后利用公式 LCM(a, b) = |a * b| / GCD(a, b) 来求取LCM。
你可以设计如下的结构:
首先,创建一个名为`gcd`的函数,接受两个整数作为参数,返回它们的最大公约数:
```python
def gcd(a, b):
while b != 0:
a, b = b, a % b
return a
```
接下来,创建一个辅助函数`lcm`,它会使用`gcd`函数来计算最小公倍数:
```python
def lcm(a, b):
return abs(a * b) // gcd(a, b)
```
这里,我们并没有直接在函数内部修改全局变量,因为通常推荐的是避免直接操作全局变量以保持代码的清晰和可维护性。相反,我们可以创建全局变量`max_gcd`和`min_lcm`,并在主函数中调用这两个函数来更新这些变量:
```python
# 定义全局变量
global_max_gcd = None
global_min_lcm = None
def calculate():
global global_max_gcd, global_min_lcm
# 获取输入的两个整数
num1 = int(input("请输入第一个整数:"))
num2 = int(input("请输入第二个整数:"))
max_gcd = gcd(num1, num2)
min_lcm = lcm(num1, num2)
global_max_gcd = max_gcd
global_min_lcm = min_lcm
# 主函数中显示结果
def main():
calculate()
print(f"最大公约数:{global_max_gcd}")
print(f"最小公倍数:{global_min_lcm}")
if __name__ == "__main__":
main()
```
阅读全文