How to use binary search In Javascript
A more optimized approach is to use binary search to find the square root of the number. We can narrow down the search range by halving it in each iteration.
Example: It utilizes a binary search approach to find if the square of any number between 1 and num is equal to the given number. If found, it returns true, indicating that the number is a perfect square; otherwise, it returns false
function isPerfectSquare3(num) {
let left = 1;
let right = num;
while (left <= right) {
let mid = Math.floor((left + right) / 2);
let square = mid * mid;
if (square === num) {
return true;
} else if (square < num) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return false;
}
const number1 = 16;
const number2 = 9;
const number3 = 15;
console.log(`${number1} is perfect square:
${isPerfectSquare3(number1)}`);
console.log(`${number2} is perfect square:
${isPerfectSquare3(number2)}`);
console.log(`${number3} is perfect square:
${isPerfectSquare3(number3)}`);
Output
16 is perfect square: true 9 is perfect square: true 15 is perfect square: false
JavaScript Program to Check Whether a Number is Perfect Square
The number that results from squaring another integer is called a perfect square. A perfect square is a number that can be expressed as the product of an integer with itself. There are several ways available in JavaScript to check whether a number is a perfect square or not which are as follows:
Table of Content
- Using the Math.sqrt() Function
- Using for loop
- Using binary search
- Using prime factorization