我需要计算C中大(BIGNUM)素数的加法逆。因此,基本上,我需要乘以-1。有没有简单的方法可以做到这一点,我错过了吗?我在文档中看不到任何功能。我所想的就是这个,我认为这很丑陋:

//bigprime = my big prime
inverse = BN_new();
one = BN_new();
negOne = BN_new();
BN_one(one);  // one = 1
BN_zero(negOne); // set negOne to zero
BN_sub(negOne, negOne, one) // subtract one from zero
BN_mul(inverse, bigprime, negOne, ctx); //multiply big prime by -1


更重要的是,我对bignum库还不够熟悉,无法知道从零“减去”一个真的会做我想要的事情。 TIA!

最佳答案

比较简单的解决方案是从零中减去质数。

inverse = BN_new();
nil = BN_new();
BN_zero(nil);
BN_sub(inverse,nil,bigprime);


应该这样做。

07-26 02:55