biginteger判断相等_java – 如何比较BigInteger的值作为循环中的条件?

我想比较一个BigInteger(base)的值是否>另一个BigInteger(素数)的值,如果’a’的值不等于1.如果a的值不是1,它应该突破循环.我该如何比较它们?

Random ran = new Random();

BigInteger prime = new BigInteger(16,ran);

BigInteger base,a,one;

one = new BigInteger("1");

for (int i = 0; i < 65535; i++){

while (base>prime){

base = new BigInteger(16,ran);

}

a = base.modPow(prime.subtract(one),prime);

System.out.println("a: "+a);

if (a != one){

break;

}

}

解决方法:

在你的情况下,这将是while(base.compareTo(prime)> 0){…}.

此外,您的终止条件应该从if(a!= one)更改为if(!a.equals(one)),因为具有相同整数值的两个BigInteger变量不一定引用同一个对象(这就是==和!=测试).

标签:java,biginteger

来源: https://codeday.me/bug/20191005/1856558.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值