Square root of a number
Problem Description
Given a number A. Return square root of the number if it is perfect square otherwise return -1.
Note : A number is a perfect square if its square root is an integer.
Problem Constraints
1 <= A <= 10^8
Input Format
First and the only argument is an integer A.
Output Format
Return an integer which is the square root of A if A is perfect square otherwise return -1.
Example Input
Input 1:
A = 4
Input 2:
A = 1001
Example Output
Output 1:
2
Output 2:
-1
Example Explanation
Explanation 1:
sqrt(4) = 2
Explanation 2:
1001 is not a perfect square.
Output
Java
public class Solution {
public int sqrt(int A) {
long start = 1, end = A, ans = -1;
while (start <= end) {
long mid = (start + end) / 2;
if (mid * mid == A) return (int)mid;
if (mid * mid < A) {
start = mid + 1;
ans = mid;
} else {
end = mid - 1;
}
}
return (int)ans;
}
}
Python
class Solution:
def sqrt(self, A):
start, end, ans = 1, A, -1
while start <= end:
mid = (start + end) // 2
if mid * mid == A:
return mid
if mid * mid < A:
start = mid + 1
ans = mid
else:
end = mid - 1
return ans
JavaScript
function sqrt(A) {
let start = 1, end = A, ans = -1;
while (start <= end) {
let mid = Math.floor((start + end) / 2);
if (mid * mid === A) return mid;
if (mid * mid < A) {
start = mid + 1;
ans = mid;
} else {
end = mid - 1;
}
}
return ans;
}