What is the most efficient way to *check* if an unsigned integer on 32/64 bits is a #perfectSquare? (For example in C/C++/Rust.)

Probably the use of sqrt floating point function, but in this case what is the first number that cause an incorrect answer due to the loss of precision?

And the same question, only for odd numbers.

π³ Olivier Pirson β OPi π§πͺπ«π·π¬π§π§@OPiMedia@mamot.frPreviously I used the *computation* of the square root, corrected like that:

https://bitbucket.org/OPiMedia/hellanguages/src/bd3a17fc5e736f139aae1311acf6b09c9031fd3a/C/integer/floor_sqrt_c/floor_sqrt_c.c#lines-89