we can do it in logn by using binary search approach found
n is the number whose square root has to be

        if(n==1)
                return 1;
        if(n==0)
                return 0;
        int low=0,high=n/2,mid,temp;
        while(1)
        {
                mid = (low+high)/2;
                temp = mid*mid;
                if(temp==n)
                        return 1;
                else if(temp <n)
                        low = mid+1;
                else
                        high = mid-1;
                if(low == mid || high == mid)
                        return 0;
        }
at the end high will have the required square root if not perfect
square or if perfect square mid will have the required answer

-- 
You received this message because you are subscribed to the Google Groups 
"Algorithm Geeks" group.
To post to this group, send email to algogeeks@googlegroups.com.
To unsubscribe from this group, send email to 
algogeeks+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/algogeeks?hl=en.

Reply via email to