Determining the greatest common factor with Python

Viewed 4595

I'm trying to determine the greatest common factor of two numbers in Python. This is what I've got. It makes sense to me, not so much to Python though. I'm not getting any specific error from Python. It just won't run.

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)

Any thoughts ?

4 Answers

Either you can go with math library as suggested above otherwise the fastest way to calculate is

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

Hope this helps

Related