我在我的Java代码中有以下“while”循环。我的代码中的所有变量都是BigIntegers。无限循环。 Java BigInteger
BigInteger d=new BigInteger("1");
BigInteger e=new BigInteger("3");
BigInteger phi1=new BigInteger("6336");
while(true)
{
if(((d.multiply(e)).mod(phi1)).equals(BigInteger.ONE))
break;
d=d.add(BigInteger.ONE);
//System.out.println(d);
}
在这种情况下,循环无限地执行。但我想在下述条件下添加一休:
if((d*e)%phi1==1)
break;
我已经转换成的BigInteger作为
if(((d.multiply(e)).mod(phi1)).equals(BigInteger.ONE))
break;
我在哪里得到它错了吗?任何人都可以告诉循环为什么无限执行?
当“的数字%3总和”是零,则数是因数3.因为6 + 3 + 3 + 6 = 18%3是0,那么数是因数3→条件将永远不会满足。 – Maroun
或者您可以注意到每个数字都是3的倍数...:P 6336/3 = 2112 –