0

我需要计算 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 库还不够熟悉,不知道从零“减”一是否真的会做我想做的事。蒂亚!

4

1 回答 1

1

更简单的解决方案是从零中减去素数。

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

应该这样做。

于 2012-09-23T02:06:42.240 回答