python用穷举法求两个数的最大公约数代码
时间: 2024-02-04 10:13:58 浏览: 93
以下是用 Python 实现用穷举法求两个数的最大公约数的代码:
```python
def gcd(a, b):
if a > b:
smaller = b
else:
smaller = a
for i in range(1, smaller+1):
if((a % i == 0) and (b % i == 0)):
gcd = i
return gcd
```
其中,函数 `gcd(a, b)` 的功能是求出 a 和 b 的最大公约数。这里使用了穷举法,从 1 到较小的那个数开始遍历,如果同时能被 a 和 b 整除,就更新最大公约数的值。最后返回最大公约数的值。
相关问题
python用穷举法计算两个数的最大公约数
可以使用以下 Python 代码来计算两个数的最大公约数:
```python
a = int(input("请输入第一个数:"))
b = int(input("请输入第二个数:"))
# 交换两个数,使 a > b
if a < b:
a, b = b, a
# 从大到小枚举可能的公约数
for i in range(b, 0, -1):
# 如果 i 同时是 a 和 b 的公约数,则 i 是最大公约数
if a % i == 0 and b % i == 0:
print("最大公约数是:", i)
break
```
在这个程序中,首先输入两个数 `a` 和 `b`,然后使用穷举法从大到小枚举可能的公约数。如果某个数 `i` 同时是 `a` 和 `b` 的公约数,则 `i` 就是最大公约数,程序输出 `i` 并结束。注意,在枚举过程中,我们从 `b` 开始往下枚举,因为最大公约数不可能超过较小的那个数。同时,为了方便比较,我们在开始之前还交换了 `a` 和 `b`。
用python 用穷举法求2个正整数的最大公约数和最小公倍数
好的,关于您的第一个问题,可以使用以下代码来用穷举法求两个正整数的最大公约数和最小公倍数:
```python
# 获取两个正整数
num1 = int(input("请输入第一个正整数:"))
num2 = int(input("请输入第二个正整数:"))
# 计算最大公约数和最小公倍数
# 最大公约数
for i in range(1, max(num1, num2)+1):
if num1 % i == 0 and num2 % i == 0:
gcd = i
# 最小公倍数
lcm = num1 * num2 // gcd
# 输出结果
print("{0}和{1}的最大公约数为:{2}".format(num1, num2, gcd))
print("{0}和{1}的最小公倍数为:{2}".format(num1, num2, lcm))
```
请注意,这里的穷举法的时间复杂度比较高,当两个数字很大时会运算缓慢。我们可以使用更高效的算法来提高效率。
阅读全文