javaprimesbiginteger

Java BigInteger prime numbers


I am trying to generate a random prime number of type BigInteger, that is between a min and max value which I supply.

I am aware of the BigInteger.probablePrime(int bitlength, random), but I am not sure how or even if the bitlength translates into a max/min value of the outputted prime.

Thanks, Steven1350


Solution

  • BigInteger.probablePrime(bitLength, random) is going to return a (probable) prime of the specified bit length. That translates into a maximum value of 2^bitlength - 1 and a minimum of 2^(bitlength - 1). As much as I hate it as an answer, it's probably your best bet unless you want to start delving into number theory.

    What you would have to do is figure out the bit lengths that your range calls for, then pass them to probablePrime() until you get back a prime that's in the right range.