만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

싱치우의 장난

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

요약
두 정수 a, b를 둘 다 1씩 더하거나 빼거나, 공통 소수로 나누는 연산으로 a 또는 b를 1로 만드는 최소 연산 횟수를 구합니다.
난이도

보통10점 중 7점

유형
정수론, 수학, 그리디
정답자
아직 제출이 없습니다

문제

행추가 다시 한번 충운의 아이스크림을 이상한 자물쇠가 달린 상자에 숨겼다. 리월의 여름은 늘 덥고, 충운은 넘치는 양(陽) 기운 때문에 더 힘들어해서 그 아이스크림이 꼭 필요하다.

Pixiv ID: 86787400

자물쇠에는 두 정수 aa와 bb가 적혀 있다. 충운은 다음 세 가지 연산을 원하는 만큼 몇 번이든 수행할 수 있다.

  • aa와 bb에서 각각 1을 뺀다.
  • aa와 bb에 각각 1을 더한다.
  • aa와 bb를 둘 다 나누는 소수 gg로 나눈다.

aa 또는 bb 중 하나 또는 둘 모두가 1이 되면 상자가 열린다. 충운이 아이스크림을 최대한 빨리 되찾을 수 있도록, 상자를 여는 데 필요한 연산 횟수의 최솟값을 구하시오.

입력

첫 줄에 테스트 케이스의 개수 TT (1≤T≤3001 \le T \le 300)가 주어진다. 각 테스트 케이스는 한 줄로 이루어지며, 정수 aa와 bb (1≤a,b≤1091 \le a, b \le 10^9, a≠ba \ne b)가 주어진다.

출력

각 테스트 케이스마다 aa, bb, 또는 둘 모두를 1로 만드는 데 필요한 최소 연산 횟수를 한 줄에 출력한다.

힌트

첫 번째 테스트 케이스의 최적 방법은 (4,7)→(3,6)→(1,2)(4, 7) \rightarrow (3, 6) \rightarrow (1, 2)이다.

두 번째 테스트 케이스의 최적 방법은 첫 번째 연산을 7번 적용하는 것이다.

세 번째 테스트 케이스의 최적 방법은 (32,84)→(16,42)→(15,41)→(14,40)→(13,39)→(1,3)(32, 84) \rightarrow (16, 42) \rightarrow (15, 41) \rightarrow (14, 40) \rightarrow (13, 39) \rightarrow (1, 3)이다.

네 번째 테스트 케이스의 최적 방법은 (11,35)→(12,36)→(6,18)→(2,6)→(1,3)(11, 35) \rightarrow (12, 36) \rightarrow (6, 18) \rightarrow (2, 6) \rightarrow (1, 3)이다.

예제1

  1. 예제 1

    입력
    5
    4 7
    9 8
    32 84
    11 35
    2 1
    
    예상 출력
    2
    7
    5
    4
    0