Assume you have 2 positive long
values a
and b
which are greater than 2^32
(and smaller than 2^63
), and an long integer c
.
What is the best way, in java and\or c, to perform operations such as
(a*b)%c
while avoiding arithmetic overflow.
Edit :
c is around 2^34
, and sometimes both a and b are just between 2^32
and c
...
I finally avoided using BigInteger
for the specific situation I was in. Indeed, It was possible to know one divisor of both a
and b
(not always the case), so I would use the arithmetic properties of modulo
to my advantage.