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

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

수 쌍 변환

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

요약
(1, 1) 쌍에서 시작해 한 수를 두 수의 합으로 바꾸거나 두 수를 맞바꾸면서 N이 들어간 쌍을 만드는 최소 횟수를 각 질의마다 구합니다.
난이도

보통10점 중 7점

유형
정수론, BFS, 완전 탐색
정답자
아직 제출이 없습니다

문제

양의 정수 두 개로 이루어진 순서쌍 (a,b)(a, b)에 다음 세 가지 변환 중 하나를 적용해서 새로운 순서쌍을 만들 수 있다.

  • (a,b)→(a,a+b)(a, b) \to (a, a + b)
  • (a,b)→(a+b,b)(a, b) \to (a + b, b)
  • (a,b)→(b,a)(a, b) \to (b, a)

순서쌍 (1,1)(1, 1)에서 시작해서 NN이 들어 있는 순서쌍을 만들려고 한다. 두 성분 중 적어도 하나가 NN과 같으면 그 순서쌍은 NN을 담고 있다. 변환을 가장 적게 쓰는 방법의 변환 횟수를 구하여라.

입력

첫째 줄에 테스트 개수 TT가 주어진다. (1≤T≤20)(1 \le T \le 20)

다음 TT개의 줄에 정수 NN이 한 줄에 하나씩 주어진다. (1≤N≤106)(1 \le N \le 10^6)

출력

각 테스트마다 최소 변환 횟수를 한 줄에 하나씩 출력한다.

힌트

N=1N = 1이면 시작 순서쌍이 이미 11을 담고 있어서 변환이 필요 없다.

N=3N = 3은 (1,1)→(2,1)→(3,1)(1, 1) \to (2, 1) \to (3, 1)로 두 번 만에 만든다.

N=5N = 5는 (1,1)→(2,1)→(2,3)→(2,5)(1, 1) \to (2, 1) \to (2, 3) \to (2, 5)로 세 번 만에 만든다.

N=7N = 7은 (1,1)→(2,1)→(2,3)→(2,5)→(2,7)(1, 1) \to (2, 1) \to (2, 3) \to (2, 5) \to (2, 7)로 네 번 만에 만든다.

예제4

  1. 예제 1

    입력
    4
    1
    3
    5
    7
    
    예상 출력
    0
    2
    3
    4
    
  2. 예제 2

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

    입력
    3
    2
    4
    6
    
    예상 출력
    1
    3
    5
    
  4. 예제 4

    입력
    12
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    예상 출력
    0
    1
    2
    3
    3
    5
    4
    4
    5
    5
    5
    5