만드는 중입니다

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

피보나치 수의 마지막 13자리

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

요약
1 이상 10^13 이하인 n이 주어질 때, n번째 피보나치 수의 마지막 13자리가 n과 같은 가장 작은 i를 찾고, 없으면 -1을 출력한다.
난이도

어려움10점 중 8점

유형
수학, 정수론, 이분 탐색
정답자
아직 제출이 없습니다

문제

FnF_n을 nn번째 피보나치 수라 하고, Gn=Fn mod 1013G_n = F_n \bmod 10^{13}이라고 하자. 즉 GnG_n은 FnF_n의 마지막 13자리다.

nn이 주어졌을 때, Gi=nG_i = n인 가장 작은 ii를 찾는 프로그램을 작성하시오.

피보나치 수의 앞부분은 다음과 같다.

  • F0=0F_0 = 0
  • F1=1F_1 = 1
  • F2=1F_2 = 1
  • F3=2F_3 = 2
  • F4=3F_4 = 3
  • F5=5F_5 = 5
  • F6=8F_6 = 8
  • F7=13F_7 = 13
  • F8=21F_8 = 21

입력

첫째 줄에 정수 nn(1≤n≤10131 \le n \le 10^{13})이 주어진다.

출력

Gi=nG_i = n인 가장 작은 ii를 출력한다. 그러한 ii가 없으면 -1을 출력한다. 답은 101310^{13}보다 클 수 있다.

예제3

  1. 예제 1

    입력
    13
    
    예상 출력
    7
    
  2. 예제 2

    입력
    377
    
    예상 출력
    14
    
  3. 예제 3

    입력
    10
    
    예상 출력
    -1