Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- long long nroot(int n, long long x)
- {
- if(x < 0)
- x = -x;
- else if(x == 0)
- return 0;
- long long a = 1, b = x/n+1, m, rez, i;
- while(a <= b)
- {
- m = (a + b) / 2;
- rez = 1;
- for(i = 0; i < n; ++i)
- {
- if(rez*m < rez) // nu permite overflow-ul
- break;
- rez *= m;
- }
- if(i != n || rez > x)
- b = m-1;
- else if(rez == x)
- return m;
- else
- a = m+1;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement