Python:不打印gcd代码

时间:2017-12-02 05:29:01

标签: python greatest-common-divisor

我写了一个代码来计算用户输入数字的最大公分母。

但我不知道为什么这段代码不打印结果。 我想,也许原因是while循环需要花费太多时间来计算。

如果我输入第一个数字= 4且第二个数字= 6,则不会打印结果。

但如果我输入第一个数字= 12和第二个数字= 24,结果将打印为“12”。

修复此代码的更好方法是什么?

num1 = int(input("Enter the fist number: "))
num2 = int(input("Enter the second number: "))

def gcd(num1, num2):
    i = min(num1, num2)
    while True:
        if (num1 % i == 0) and (num2 % i == 0):
            return i
        i - 1

print("The greatest common denominator of both number is", gcd(num1, num2))

2 个答案:

答案 0 :(得分:0)

你曾经减少的符号我在python中不存在,它应该改为:

i=i-1

答案 1 :(得分:0)

您没有更改i的值。只需使用const createStoreWithMiddleware = applyMiddleware(promise)(createStore); 而不仅仅是i-1。

这就是为什么当你的数字没有在第一次迭代中除以更大的数字时它进入无限循环,因为你没有改变i的值。