아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

최소공배수

면접 대비

시간 제한2초메모리 제한512 MB

요약
1억 미만의 두 정수가 주어질 때, 32비트 범위를 넘을 수 있는 최소공배수를 구해 출력한다.
난이도

쉬움10점 중 2점

유형
수학, 정수론, 구현
정답자
아직 제출이 없습니다

문제

정수 BB에 00보다 큰 정수 NN을 곱해서 정수 AA를 만들 수 있으면 AA는 BB의 배수다. 예를 들어 5×2=105 \times 2 = 10이므로 1010은 55의 배수이고, 10×1=1010 \times 1 = 10이므로 1010은 자기 자신의 배수이며, 1×6=61 \times 6 = 6이므로 66은 11의 배수다. 2020은 11, 22, 44, 55, 1010, 2020의 배수다.

두 수의 공배수 중 가장 작은 값이 두 수의 최소공배수다. 22와 55의 최소공배수는 1010인데, 1010보다 작은 공배수가 없기 때문이다. 1010과 2020의 최소공배수는 2020이고, 55와 33의 최소공배수는 1515다.

두 정수 AA와 BB의 최소공배수를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 두 정수 AA와 BB가 공백 하나로 구분되어 주어진다. 1≤A,B<100 000 0001 \le A, B < 100\,000\,000이다.

입력의 50%50\%는 AA와 BB가 모두 10001000보다 작고, 나머지 50%50\%는 AA와 BB가 10001000보다 크다.

큰 입력에서는 답이 32비트 정수 범위를 넘는다. C/C++에서는 long long int를, Java에서는 long을 쓰시오.

출력

첫째 줄에 AA와 BB의 최소공배수를 출력한다.

예제4

  1. 예제 1

    입력
    1 1
    
    예상 출력
    1
    
  2. 예제 2

    입력
    3 5
    
    예상 출력
    15
    
  3. 예제 3

    입력
    1 123
    
    예상 출력
    123
    
  4. 예제 4

    입력
    121 199
    
    예상 출력
    24079