我想在java中生成一个160位的素数.我知道我必须循环遍历所有160位数字,对于任何数字n,我都必须检查它们是否可以被任何质数小于sqroot(n)或者通过任何素数测试整除Miller-Rabin test.我的问题是:
有没有特定的库可以做到这一点?
有没有其他(更好)的方法来做到这一点?
Lou*_*man 14
BigInteger.probablePrime(160, new Random())产生一个BigInteger几乎肯定是素数的概率 - 它不是素数的概率小于你被闪电击中的概率.一般来说,BigInteger已经进行了大量测试和优化的素性测试操作.
对于它的价值,这不会永远的原因是,通过素数定理,随机选择的n位数具有与素数的1/n成比例的概率,因此平均而言,您只需要尝试O(n )在你找到一个素数之前,不同的随机n位数.
| 归档时间: |
|
| 查看次数: |
5966 次 |
| 最近记录: |