JavaScript Program to Check Whether a Number is Perfect Square
Last Updated :
14 Jun, 2024
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:
Using the Math.sqrt() Function
The simplest approach to checking whether a number is a perfect square is to use the Math.sqrt() function. If the square root of a number results in an integer, then the number is a perfect square.
Example: It returns true if the input number is a perfect square (i.e., an integer that is the square of an integer), otherwise false. It also includes examples of usage demonstrating its functionality.
JavaScript
function isPerfectSquare(num) {
if (num <= 0 || typeof num !== "number") {
return false;
}
const sqrt = Math.sqrt(num);
return Number.isInteger(sqrt);
}
const number1 = 16;
const number2 = 9;
const number3 = 15;
console.log(`${number1} is perfect square:
${isPerfectSquare(number1)}`);
console.log(`${number2} is perfect square:
${isPerfectSquare(number2)}`);
console.log(`${number3} is perfect square:
${isPerfectSquare(number3)}`);
Output16 is perfect square: true
9 is perfect square: true
15 is perfect square: false
Using for loop
One can iterate from 1 to the square root of the number using for loop and check if any integer square results in the given number.
Example: It starts at 1 and iterates through possible square roots until the iterator's square reaches the specified number. It returns true if the square of any iterator is equal to the given integer, displaying that the number is a perfect square; if not, it returns false.
JavaScript
function isPerfectSquare(num) {
// Check for negative and non-numeric input
if (num <= 0 || typeof num !== "number") {
return false;
}
// Loop through potential square roots
for (let i = 1; i * i <= num; i++) {
if (i * i === num) {
return true;
}
}
return false;
}
// Example usage
const number1 = 16;
const number2 = 9;
const number3 = 15;
console.log(`${number1} is perfect square:
${isPerfectSquare(number1)}`);
console.log(`${number2} is perfect square:
${isPerfectSquare(number2)}`);
console.log(`${number3} is perfect square:
${isPerfectSquare(number3)}`);
Output16 is perfect square: true
9 is perfect square: true
15 is perfect square: false
Using binary search
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
JavaScript
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)}`);
Output16 is perfect square: true
9 is perfect square: true
15 is perfect square: false
Using prime factorization
Another approach to determine if a number is a perfect square involves prime factorization. If the prime factors of a number occur in pairs, then the number is a perfect square. This is because when you multiply these pairs together, you get the original number.
Example: This method involves finding the prime factors of the given number and checking if each factor occurs an even number of times.
JavaScript
function isPerfectSquare4(num) {
// Check for negative and non-numeric input
if (num <= 0 || typeof num !== "number") {
return false;
}
// Find the prime factors
let factorCount = new Map();
let divisor = 2;
while (num > 1) {
if (num % divisor === 0) {
num /= divisor;
factorCount.set(divisor, (factorCount.get(divisor) || 0) + 1);
} else {
divisor++;
}
}
// Check if each factor occurs an even number of times
for (let count of factorCount.values()) {
if (count % 2 !== 0) {
return false;
}
}
return true;
}
// Example usage
const number1 = 16;
const number2 = 9;
const number3 = 15;
console.log(`${number1} is perfect square: ${isPerfectSquare4(number1)}`);
console.log(`${number2} is perfect square: ${isPerfectSquare4(number2)}`);
console.log(`${number3} is perfect square: ${isPerfectSquare4(number3)}`);
Output16 is perfect square: true
9 is perfect square: true
15 is perfect square: false
Similar Reads
JavaScript Program to Check Whether a Number is an Automorphic Number Numbers, whose square ends with the same digits as the number itself are referred to as automorphic numbers, sometimes known as circular or circular-permuted numbers. Examples:Input: number = 5Output: YesExplanation: 5 is a automorphic number, because the square of 5 is 25 which ends with 5 the digi
3 min read
Java Program to Check if a Given Number is Perfect Number A number is said to be a perfect number if the sum of its proper divisors ( i.e. all positive divisors excluding the number itself )is equal to that number itself. Aliquot sum is the sum of divisors of a number, excluding the number itself. Hence, a number is a perfect number only if it is equal to
5 min read
Different Methods to Check whether is the number is Square root or not in Java In this article, we will learn different methods to check whether the number is a square root or not in Java. Examples: Input: x = 4Output: 4 is a perfect square: True Input: x = 11Output: 3Explanation: 11 is a perfect square: False Methods to Check Square Root in JavaBelow are the methods by which
5 min read
PHP Check if Given Number is Perfect Square Given a number, the task is to check the given number is a perfect square in PHP. A perfect square is an integer that is the square of another integer. For example, 16 is a perfect square because it is the square of 4. Examples: Input: num = 16Output: Perfect SquareInput: 18Output: Not a Perfect Squ
2 min read
Perfect Numbers in JavaScript A number is a perfect number if is equal to the sum of its proper divisors, that is, the sum of its positive divisors excluding the number itself. In this article, we will see how to check if a number is a perfect number or not in JavaScript. Examples: Input: n = 15Output: falseExplanation: Divisors
3 min read
What are the numbers which cannot come to the unit place of a perfect square? What are the numbers which cannot come to the unit place of a perfect square?Numbers that Cannot come at the Unit Place of any Perfect square are 2, 3, 7, and 8.A square number or perfect square is an integer resulting from multiplying an integer by itself. It's the product of an integer with itself
2 min read