>>13

>>7で64ビット以上の数も判定出来てるけど。。。
(0が偶数ならTrue、奇数ならFalse)
小数点以下が0か(n.0かn.41421356みたいな形か)どうか見てるだけだし。
この辺はsqrt関数の性能に依存するだろうけど。

n = 100000000000000000000
m = 10000000000000000000

print(isSqr(n))
print(isSqr(m))

出力

True
False