两个数字之间的最大公约数,返回最大数

时间:2014-10-25 17:51:20

标签: python

我试图找到两个数字之间的最大公约数。我的测试数字是45和81.虽然gcd是9,但它只返回3这是一个除数但它不会继续返回9.我很接近,但我想不出一种让它返回更高的方法号。

def GCD(num1,num2):
    for i in range(2,num1+1 and num2+1):
        if(num1%i==0 and num2%i==0):
            print("The Greatest Common Denominator between", num1,"and", num2, "is ", end="")
                return i

2 个答案:

答案 0 :(得分:1)

gcd是一个内置函数,你可以简单地做到

from fractions import gcd
gcd(45,81)

话虽这么说,我仍然会解释你的错误是什么,因为它很难理解。问题是你在找到第一个公分母后返回,它打破了循环,所以你永远不会进行测试9.解决方案是如此经历从最大到最小的范围,只需用[::-1]反转它。此外,printreturn应具有相同的缩进级别。

def GCD(num1,num2):
    for i in range(2,num1+1 and num2+1)[::-1]:
        if(num1%i==0 and num2%i==0):
            print("The Greatest Common Denominator between {0} and {1} is {2}".format(num1,num2,i), end="")
            return i

另外,技术上%是将变量放入字符串的过时方法,现在推荐使用format()

答案 1 :(得分:0)

#include

使用命名空间标准;

int main() {

results="hide"

}