L=ceil((sqrt(v-4*N)-1)/4)-1
其中V和N是mpz_class变量。
由于某种原因,这会抛出一个错误,打开gmpxx.h并且
有问题inline void __gmp_set_expr(mpz_ptr z, const __gmp_expr<mpz_t, T> &expr)
{
expr.eval(z);
}
如何正确地完成这项工作?
答案 0 :(得分:0)
我不熟悉C ++接口,但我认为mpz_class变量的sqrt()将返回mpz_class结果。将ceil()应用于整数是没有意义的。您将需要使用mpf_class从sqrt()获取浮点结果,然后ceil()应该工作(但返回一个mpf_class)。