Photo by Vincent LaVigna on Unsplash
We are going to write a function called isSquare
that will accept an integer n
as an argument.
In this function, you will check if a number is a perfect square. A perfect square is an integer that is the square of an integer. In other words, if you were to square root an integer, the result should be another integer. If that's the case, then that integer (the number you square rooted) is a perfect square.
To know whether a number is a perfect square or not, we calculate the square root of the given number. If the result is a whole number then the given number is a perfect square.
If we were to check if 18
is a perfect square, we would square root that number and get 4.24264068712
. Since that is not a whole number, we can conclude that 18
is not a perfect square.
But if we did the same for 16
and square root that number, we would get 4
. Since 4
is a whole number, we know that 16
is a perfect square.
The goal of the function is to return true
if the given value is a perfect square and false
if it is not a perfect square.
To begin, we check if the number is positive. Perfect squares can't be negative numbers so if it is a negative number, return false
.
if (n < 0) {
return false;
}
As mentioned above, knowing if a number is a perfect square will depend on the square root of that value. We will use Math.sqrt()
to square root the input.
Math.sqrt(n)
To check if the result is a whole number, we will use Number.isInteger()
and use our Math.sqrt(n)
as an argument.
Number.isInteger(Math.sqrt(n))
With that in mind, we can now check if n
is a perfect square. If the square root result is a whole number, the function will return true
and if not, return false
.
if (Number.isInteger(Math.sqrt(n))) {
return true;
} else {
return false;
}
That's it. Here is the rest of the function:
Thank you for reading.