两个正整数的最大公约数(greatest cormmon divisor, GCD)是指两个正整数的公有约数中最大的一个。即如果 GCD(x,,)=6,则h是能同时整除,和y的最大除数。 请编写程序,从键盘读取两个正整数,和y,然后分别使用下述两种方法计算并打印两者的最大公约数
时间: 2024-02-06 14:12:21 浏览: 158
求两个正整数的最大公约数。-c语言程序设计课件
好的,以下是使用辗转相除法和更相减损法求解最大公约数的代码:
```python
# 辗转相除法
def gcd_euclidean_algorithm(x, y):
while y != 0:
x, y = y, x % y
return x
# 更相减损法
def gcd_subtraction(x, y):
while x != y:
if x > y:
x -= y
else:
y -= x
return x
# 读取用户输入
x = int(input("请输入第一个正整数:"))
y = int(input("请输入第二个正整数:"))
# 使用辗转相除法求解
gcd_by_euclidean_algorithm = gcd_euclidean_algorithm(x, y)
# 使用更相减损法求解
gcd_by_subtraction = gcd_subtraction(x, y)
# 打印结果
print("使用辗转相除法求解得到的最大公约数为:", gcd_by_euclidean_algorithm)
print("使用更相减损法求解得到的最大公约数为:", gcd_by_subtraction)
```
您可以运行这段代码,输入两个正整数,程序将分别使用辗转相除法和更相减损法求出它们的最大公约数,并打印结果。请注意,两种方法的时间复杂度不同,辗转相除法的时间复杂度为 $O(\log n)$,而更相减损法的时间复杂度为 $O(n)$,因此在处理大型数字时,应该优先考虑使用辗转相除法。
阅读全文