! 問題文
! 高橋君はパーティを企画しています。

! パーティーでは参加者に 
! 1
!  人 
! 1
!  個以上のお菓子を配る予定です。

! 高橋君は参加者の人数が 
! A
!  人か 
! B
!  人のどちらかになるだろうという予想を立てました。

! どちらの場合でも均等に配りきることができるようなお菓子の個数の最小値を求めてください。

! ただし、 
! 1
!  個のお菓子を分割して複数人で分けることはできないものとします。

! 制約
! 1
! ≤
! A
! ,
! B
! ≤
! 10
! 5
! A
! ≠
! B
! 入力はすべて整数


program main
    implicit none
    integer(8):: a, b
    integer(8):: div, by

    read*, a, b
    div = 2
    by = 1
    do while( div <= min(a,b))
        ! print*, a, b, by
        if (can_div_xy(a, b, div))then
            a = a / div
            b = b / div
            by = by * div
        else
            div = div + 1
        end if
    end do

    print*, a*b*by
    
contains

function can_div_xy(x, y, div) result(ret)
    integer(8):: x, y, div
    logical:: ret
    if (can_div(x, div) .and. can_div(y, div)) then
        ret = .true.
    else
        ret = .false.
    end if
    return
end function can_div_xy

function can_div(x, div) result(ret)
    integer(8):: x, div
    logical:: ret
    if (mod(x, div) == 0)then
        ret = .true.
    else
        ret = .false.
    end if
    return
end function can_div
end program main