Advertisement
Daniela000

Untitled

Apr 4th, 2020
23
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.55 KB | None | 0 0
  1. long long nroot(int n, long long x)
  2. {
  3. if(x < 0)
  4. x = -x;
  5. else if(x == 0)
  6. return 0;
  7.  
  8. long long a = 1, b = x/n+1, m, rez, i;
  9. while(a <= b)
  10. {
  11. m = (a + b) / 2;
  12. rez = 1;
  13. for(i = 0; i < n; ++i)
  14. {
  15. if(rez*m < rez) // nu permite overflow-ul
  16. break;
  17. rez *= m;
  18. }
  19.  
  20. if(i != n || rez > x)
  21. b = m-1;
  22. else if(rez == x)
  23. return m;
  24. else
  25. a = m+1;
  26. }
  27. return 0;
  28. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement