0
 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);
}

我该如何正确地做这个天花板?

4

1 回答 1

0

我不熟悉 C++ 接口,但我认为 mpz_class 变量的 sqrt() 将返回 mpz_class 结果。将 ceil() 应用于整数是没有意义的。您将需要使用 mpf_class 从 sqrt() 获取浮点结果,然后 ceil() 应该可以工作(但返回一个 mpf_class)。

于 2012-11-28T06:35:55.770 回答