如何使用 R 中的 mpfr 包检查数字是否为完美正方形?

How to check if a number is a perfect square by using mpfr package in R?

我有一个行列式,我知道它是整数的平方,但因为它的值大于 .Machine$integer.max 我使用了 mpfr 包。

但是我还有问题。

算法如下:

> a<- mpfr(sqrt(det(M)), precBits=512);a
1 'mpfr' number of precision  512   bits 
[1] 430080000000001.1875

你能帮帮我吗?

性能有问题吗?如果没有,那么以下应该有效。

> x<-mpfr(31415926535897932384626433832795, 500)
> is.whole(sqrt(x))
[1] FALSE


> y<-mpfr(31415926535897932384626433832794, 500)^2
> y
1 'mpfr' number of precision  500   bits
[1] 986960440108935918772069008410384076085841574993068761741787136
> is.whole(sqrt(y))
[1] TRUE