Найти LCM с помощью python

def кратно (a, b): """, поэтому я пытаюсь вернуть наименьшее число n, кратное a и b.

например:

кратный (3, 4) 12 кратный (14, 21) 42 """

def gcd (a,b):
    if a < b : a , b = b,a
    while b:
        a , b = b , a % b
    return a

def lcm (a , b):
    n= (a*b) / gcd(a,b)
    return n

он продолжает выдавать ошибки об отступах и логике. Я не понимаю почему. Я тоже пытался менять переменные.

1 ответ

Решение

Не нужно искать GCD, мы можем напрямую найти LCM. Ниже работает код

def lcmof(x,y):
    res=0
    mx=max(x,y)
    mn=min(x,y)
    for i in range(1,mx+1,1):
        temp=mx*i
        try:
            if(temp%mn==0):
                res=temp
                break
        except ZeroDivisionError:
            res=0
            break
    return res
Другие вопросы по тегам