fork download
  1. def isqrt(n):
  2. lo=0;hi=n
  3. while lo<hi:
  4. test = (lo+hi)//2
  5. if test*test > n:
  6. hi = test-1
  7. else:
  8. lo = test
  9. return lo
  10.  
  11. unit=10**30
  12. sqrt_5=isqrt(5*unit**2);print(sqrt_5)
  13. r = unit//2 + sqrt_5//2
  14. f=lambda n:([(n-1)*r+unit,(n-1)*unit**2//r][(n-1)*unit**2%r < unit**2//r]+unit)//unit
  15.  
  16. print(f(2**31-1))
Success #stdin #stdout 0.01s 9992KB
stdin
Standard input is empty
stdout
2236067977499789696409173668731
3474701531