생각보다 평평하지 않은 공간

시간 제한1초메모리 제한128 MB

요약
두 양의 정수마다 두 수를 모두 담는 최소 소수 집합의 크기와 지수 벡터 사이의 맨해튼 거리를 구한다.
난이도

보통10점 중 4점

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

문제

모든 양의 정수 vv 는 v=p1a1⋅p2a2⋯pnanv = p_1^{a_1} \cdot p_2^{a_2} \cdots p_n^{a_n} 꼴로 쓸 수 있다. 여기서 각 pip_i 는 소수이고 모든 ai≥0a_i \ge 0 이다. 예를 들어 24=23⋅3124 = 2^3 \cdot 3^1 이다.

서로 다른 두 소수 p1≠p2p_1 \ne p_2 를 고르자. p1p_1 의 지수를 x좌표, p2p_2 의 지수를 y좌표로 삼는 2차원 평면을 생각하면, p1a1⋅p2a2p_1^{a_1} \cdot p_2^{a_2} 꼴의 수는 모두 점 (a1,a2)(a_1, a_2) 로 나타낼 수 있다.

이 아이디어는 임의의 NN차원 공간으로 확장된다. 각 축에는 서로 다른 소수가 하나씩 배정된다. 이렇게 각 공간이 갖는 고유한 소수 집합을 공간 식별 집합(Space Identification Set) SS 라 하며, 그 크기 ∣S∣|S| 는 NN 과 같다. SS 에 속한 소수들만의 곱(각 소수의 지수는 ≥0\ge 0)으로 표현되는 수는 이 ∣S∣|S|차원 공간 위의 한 점으로 나타낼 수 있다. 또한 SA⊆SBS_A \subseteq S_B 이면 공간 AA 에 나타낼 수 있는 수는 공간 BB 에도 나타낼 수 있다.

두 점 사이의 거리는 격자선을 따라 한 점에서 다른 점까지 이동하는 데 필요한 단위 이동 횟수로 정의한다. 모든 이동은 한 축에 평행하다. 이는 두 좌표 벡터 사이의 맨해튼(L1) 거리와 같다. 예를 들어 168=23⋅3⋅7168 = 2^3 \cdot 3 \cdot 7 과 882=2⋅32⋅72882 = 2 \cdot 3^2 \cdot 7^2 사이의 거리는 ∣3−1∣+∣1−2∣+∣1−2∣=4|3-1| + |1-2| + |1-2| = 4 이다.

두 양의 정수가 주어질 때, 두 수를 모두 나타낼 수 있는 공간의 최소 크기와, 그 공간에서 두 수 사이의 거리를 구하는 프로그램을 작성하라.

입력

입력은 하나 이상의 테스트 케이스로 이루어진다. 각 테스트 케이스는 두 양의 정수 AA 와 BB (0<A,B<1,000,0000 < A, B < 1{,}000{,}000, A⋅B>1A \cdot B > 1)가 공백으로 구분되어 한 줄에 주어진다. 마지막 줄에는 두 개의 0이 주어지며, 이 줄은 처리하지 않는다.

출력

각 테스트 케이스마다 다음 형식으로 한 줄씩 출력한다.

k. X:D

여기서 kk 는 테스트 케이스 번호(1부터 시작), XX 는 AA 와 BB 를 모두 나타낼 수 있는 공간의 최소 크기, DD 는 그 공간에서 두 수 사이의 거리이다.

예제3

  1. 예제 1

    입력
    168 882
    770 792
    0 0
    
    예상 출력
    1. 3:4
    2. 5:6
    
  2. 예제 2

    입력
    2 3
    0 0
    
    예상 출력
    1. 2:2
    
  3. 예제 3

    입력
    8 32
    0 0
    
    예상 출력
    1. 1:2