두 자연수의 최대공약수(둘 다 나누어떨어지게 하는 가장 큰 수)와 최소공배수(둘 다의 배수인 가장 작은 수)를 구해 보세요. 힌트: 수가 아주 커서 1부터 하나씩 나누어 보면 너무 오래 걸려요. 유클리드 호제법을 찾아 써 보세요.
입력
첫째 줄에 자연수 A와 B가 공백으로 구분되어 주어져요. (1 ≤ A, B ≤ 1,000,000,000,000) 최소공배수가 1,000,000,000,000,000,000(10의 18제곱) 이하인 경우만 주어져요.
출력
첫째 줄에 최대공약수, 둘째 줄에 최소공배수를 출력해요. 답이 커질 수 있으니 C·C++·Java는 long long/long을 쓰세요. A×B는 long long도 넘을 수 있으니 최소공배수는 A ÷ 최대공약수 × B 순서로 계산하세요.