用Python确定最大的公因子

时间:2017-08-08 09:11:43

标签: python-3.x

我正在尝试确定Python中两个数字的最大公因子。这就是我所拥有的。这对我来说很有意义,而不是Python。我没有收到Python的任何特定错误。它不会运行。

def highestFactor(numX,numY):
    if numX > numY:
        x = numY
    else:
        x = numX
    while x > 1:
        if numX % x == 0 and numY % x == 0:
        print x
        break

    x -= 1

highestFactor(8,22)

有什么想法吗?

4 个答案:

答案 0 :(得分:1)

你正在减少循环外的x值。

试试这个: -

def highestFactor(numX,numY):
    if numX > numY:
        x = numY
    else:
        x = numX
    while x > 1:
        if numX % x == 0 and numY % x == 0:
            break
        x -= 1
    print x



highestFactor(8,22)

答案 1 :(得分:0)

这适用于Python3:

 def highestFactor(numX,numY):
     print('in')
     if numX > numY:
         x = numY
     else:
         x = numX
     while x > 1:
         if numX % x == 0 and numY % x == 0:
             print(x)
             break
         x -= 1

 highestFactor(8,22) 

答案 2 :(得分:0)

你在x- = 1上有一个不好的缩进,无论如何在python中有一个 gcd 函数......

from fractions import gcd
print(gcd(8, 22)) 

答案 3 :(得分:0)

您可以按照上面的建议使用数学库,否则最快的计算方法是

def gcd(m,n):
    if m<n: #assuming that m should always be greater than n
        (m,n) = (n,m)

    while m%n !=0:
        (m,n) = (n, m%n)
    return n

希望这会有所帮助