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

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

어려움8수학정수론이분 탐색아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

FnF_nnn번째 피보나치 수라 하고, Gn=Fnmod1013G_n = F_n \bmod 10^{13}이라고 하자. 즉 GnG_nFnF_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(1n10131 \le n \le 10^{13})이 주어진다.

출력

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