What is the method to decide if a given number (integer) is going to have an integer square-root or not (without actually computing the square-root)?

For example, assume I have a method M that does this. Then it should behave like below:

M(16) should return true (since sq-root(16)==4 which is integer)

M(17) should return false (since sq-root(17) is not an integer)

and M should not actually compute the square-root to decide this.

Any literature or info of this?

Similar questions and discussions