GMP上限功能

And*_*uss 2 c math gmp

我想用GMP找到一个非常大的平方根的上限.在C中ceil(sqrt(n)).

整数的GMP平方根截断结果,因此10的平方根将报告为3.浮点平方根按预期工作,但我需要采用下一个最大整数.mpf_get_d向零舍入,但否则做我想要的.如何获得大量平方根的上限?

Mys*_*ial 7

这是一个快速而肮脏的技巧:

ceil( sqrt(n) ) = trunc_sqrt(n - 1) + 1
Run Code Online (Sandbox Code Playgroud)

trunc_sqrt(n)您当前使用的GMP的整数平方根函数在哪里.

这适用于所有整数n > 0.