[英]BigInteger loop executing infinitely
while(true) {
if(((d.multiply(e)).mod(phi1)).equals(BigInteger.ONE))
break;
d.add(BigInteger.ONE);
}
我的程序中有以下代碼,這意味着
while(true) {
if((d*e)%phil==1)
break;
d++;
}
在此, e=17
, phil=12816
並且d=1
。
但是即使等待了很長時間,循環仍在執行。 可能是什么錯誤?
BigInteger
是不可變的,對其進行的所有操作都會返回一個新實例,而不是修改當前實例。 因此d.add(BigInteger.ONE);
不會改變d
的值。
要解決此問題,請寫: d = d.add(BigInteger.ONE);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.