fork download
  1. n = int(input())
  2.  
  3. precision = (n+100)//4
  4.  
  5. unit = 10**precision
  6.  
  7. def isqrt(n): #binary search between 0 and n
  8. lo = 0
  9. hi = n
  10. mi = 0
  11. while lo<hi:
  12. mi = (lo+hi+1)//2
  13. test = mi*mi
  14. if test > n:
  15. hi = mi - 1
  16. elif test < n:
  17. lo = mi
  18. else:
  19. lo = hi = mi
  20. return lo
  21.  
  22. enlarged_sqrt5 = isqrt(5*unit*unit)
  23.  
  24. enlarged_phi = (unit + enlarged_sqrt5)//2
  25.  
  26. enlarged_phi_to_n = enlarged_phi**n//unit**(n-1)
  27.  
  28. print((enlarged_phi_to_n+unit//2)//enlarged_sqrt5)
Success #stdin #stdout 0.55s 9936KB
stdin
1000
stdout
43466557686937456435688527675040625802564660517371780402481729089536555417949051890403879840079255169295922593080322634775209689623239873322471161642996440906533187938298969649928516003704476137795166849228875