两个正整数的最大公约数(greatest cormmon divisor, GCD)是指两个正整数的公有约数中最大的一个。即如果 GCD(x,,)=6,则h是能同时整除,和y的最大除数。 请编写程序,从键盘读取两个正整数,和y,然后分别使用下述两种方法计算并打印两者的最大公约数。 1•分牮法 穷举法也称为暴力求解法,它利用计算机计算速度快的优势,列举所有的可能“解”并逐一签別,直到我到正确解。
时间: 2024-02-06 19:12:17 浏览: 47
计算两个整数的最大公约数
5星 · 资源好评率100%
好的,我明白了你的问题。以下是使用Python编写的两种方法来计算两个正整数的最大公约数:
1. 分治法:
```python
def gcd_divide(x, y):
if y == 0:
return x
else:
return gcd_divide(y, x % y)
# 示例
x = int(input("请输入第一个正整数:"))
y = int(input("请输入第二个正整数:"))
gcd = gcd_divide(x, y)
print("最大公约数是:", gcd)
```
2. 穷举法:
```python
def gcd_brute_force(x, y):
if x > y:
smaller = y
else:
smaller = x
for i in range(1, smaller+1):
if((x % i == 0) and (y % i == 0)):
gcd = i
return gcd
# 示例
x = int(input("请输入第一个正整数:"))
y = int(input("请输入第二个正整数:"))
gcd = gcd_brute_force(x, y)
print("最大公约数是:", gcd)
```
这两种方法都可以计算出两个正整数的最大公约数,但是分治法的效率更高,因为它的时间复杂度是O(log n),而穷举法的时间复杂度是O(n)。
阅读全文