簡體   English   中英

BigInteger循環無限執行

[英]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=17phil=12816並且d=1

但是即使等待了很長時間,循環仍在執行。 可能是什么錯誤?

BigInteger是不可變的,對其進行的所有操作都會返回一個新實例,而不是修改當前實例。 因此d.add(BigInteger.ONE); 不會改變d的值。

要解決此問題,請寫: d = d.add(BigInteger.ONE);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM