我正在尝试生成BigInteger类型的随机素数,即我提供的最小值和最大值之间.
我知道BigInteger.probablePrime(int bitlength,random),但我不确定比特长度是如何转换为输出素数的最大值/最小值.
谢谢,
Steven1350
解决方法
BigInteger.probablePrime(bitLength,random)将返回指定位长的(可能)素数.这转换为最大值2 ^ bitlength – 1和最小值2 ^(bitlength – 1).尽管我讨厌它作为答案,但它可能是你最好的选择,除非你想开始钻研数论.
你需要做的是找出你的范围所需的位长,然后将它们传递给probablePrime(),直到你找到一个在正确范围内的素数.