大佬们帮忙看一下这个未定义的错误

创建了两个函数一个是最大公约数的一个是最小图片说明
公倍数的,最大公约数的函数不报错,最小公倍数的函数就出现这如图错误

def gongyueshu(x, y):
    """该函数返回两个数的最大公约数"""
    # 获取最小值
    #danan必须声明才成为全局变量要不然会抱错
    global daan
    if x > y:
        smaller = y
    else:
        smaller = x
    for i in range(1, int(smaller) + 1):
        if ((x % i == 0) and (y % i == 0)):
            daan=i
    return daan

def gongbeishu(a,b):
#声明daan2为全局变量
global daan2
if a > b:
a, b = b, a
for i in range(1, a*b):
if b * i % a == 0:
daan2=(b*i)
break
return daan2