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))
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))
 
    
    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)
