0

Why is None returned ? When a or b is 0, max(a, b) must be returned

def gcd(a, b):
if a == 0 or b == 0:
    return max(a, b)
else:
    if a > b:
        gcd(a-b, b)
    else:
        gcd(b-a, a)

print(gcd(1000,400))

richardR
  • 13
  • 1

1 Answers1

3

You aren't returning when you recursively call gcd.

def gcd(a, b):
    if a == 0 or b == 0:
        return max(a, b)
    else:
        if a > b:
            return gcd(a - b, b)
        else:
            return gcd(b - a, a)
AKX
  • 152,115
  • 15
  • 115
  • 172