Calculate (x^y)%z without pow().
Solution:
The question here is how we can reduce the complexity... if we compute the x^y by normal method the complexity is O(y)... to reduce the complexity we can use binary weighted power computation method in which complexity is O(logy)..
ans=1;
square=x;
if(y==0)
return 1;
while(y!=0)
{
if(y%2)
ans=ans*square;
square=(square*square)%z;
y=y/2;
if(ans>z)
ans=ans%z;
}
return ans;
Complexity:
time - O(log n)Links and credits:
space - O(1)
http://www.careercup.com/question?id=22767685
No comments:
Post a Comment