import fractions

A,B = list(map(int,input().split()))



def lcm(x, y):

    return (x * y) // fractions.gcd(x, y)



print((lcm(A, B)))
A,B = list(map(int,input().split()))



#a,bの最大公約数

def gcd(a, b):

    while b:

        a, b = b, a % b

    return a



#a,bの最小公倍数

def lcm(a, b):

    return a * b // gcd (a, b)

  

Answer = lcm(A,B)

print(Answer)
import fractions

A, B = list(map(int, input().split()))


def lcm(x, y):
    return (x * y) // fractions.gcd(x, y)


print((lcm(A, B)))

A, B = list(map(int, input().split()))
# a,bの最大公約数
def gcd(a, b):
    while b:
        a, b = b, a % b
    return a


# a,bの最小公倍数
def lcm(a, b):
    return a * b // gcd(a, b)


Answer = lcm(A, B)
print(Answer)

-import fractions - +# a,bの最大公約数 +def gcd(a, b): +    while b: +        a, b = b, a % b +    return a -def lcm(x, y): -    return (x * y) // fractions.gcd(x, y) +# a,bの最小公倍数 +def lcm(a, b): +    return a * b // gcd(a, b) -print((lcm(A, B))) +Answer = lcm(A, B) +print(Answer)