Исходный код Java доступен для скачивания, так что вы можете посмотреть его самостоятельно.
Вот код для BigInteger.probablePrime(int, Random)
:
public static BigInteger probablePrime(int bitLength, Random rnd) {
if (bitLength < 2)
throw new ArithmeticException("bitLength < 2");
// The cutoff of 95 was chosen empirically for best performance
return (bitLength < SMALL_PRIME_THRESHOLD ?
smallPrime(bitLength, DEFAULT_PRIME_CERTAINTY, rnd) :
largePrime(bitLength, DEFAULT_PRIME_CERTAINTY, rnd));
}
Фактические тесты содержатся в методах smallPrime()
и largePrime()
, которые следуют непосредственно в исходном коде.