Guest User

Untitled

a guest
Jan 16th, 2018
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.91 KB | None | 0 0
  1. import time
  2. import sys
  3. import functools
  4. from math import sqrt
  5.  
  6. #print(f' sys.getrecursionlimit()={sys.getrecursionlimit()}')
  7. i=0
  8. sys.setrecursionlimit(10000)
  9.  
  10. @functools.lru_cache()
  11. def f(x):
  12. global i
  13. i +=1
  14. if i%250==0: print(i)
  15. if x <=1: return 0
  16. return 1 + min([ f(m + x // m - 2) for m in range(1,int(sqrt(x))+1) if x%m==0])
  17.  
  18. x = int(input("дай целое!"))
  19. t0 = time.clock()
  20. print( f(x))
  21. t1 = time.clock()
  22. print (t1-t0, ' i=', i)
  23.  
  24. дай целое!1024
  25. 250
  26. 500
  27. 750
  28. ...
  29. 3250
  30. 3500
  31. 7
  32.  
  33. 0.12052656332407201 i= 3636
  34.  
  35. дай целое!1040
  36. 250
  37. 500
  38. 750
  39. 1000
  40.  
  41. =============================== RESTART: Shell ===============================
  42.  
  43. import signal
  44.  
  45. def run_pdb(signal, frame):
  46. import pdb
  47. pdb.Pdb().set_trace(frame)
  48.  
  49.  
  50. def do_something(): # Основная логика
  51. ...
  52.  
  53. if __name__ == '__main__':
  54. signal.signal(signal.SIGBREAK, run_pdb)
  55. do_something()
Add Comment
Please, Sign In to add comment