1. ホーム
  2. java

[解決済み] BigIntegerの使い方を教えてください。

2022-04-27 21:31:26

質問

このようなコードがありますが、うまくいきません。

BigInteger sum = BigInteger.valueOf(0);
for(int i = 2; i < 5000; i++) {
    if (isPrim(i)) {
        sum.add(BigInteger.valueOf(i));
    }
}

変数sumは常に0です。何が間違っているのでしょうか?

解決方法は?

BigInteger はイミュータブルです。 javadocsには、次のように書かれています。 追加() "[r]eturns a BigInteger whose value is (this + val)." Therefore, you can't change a BigInteger. sum の結果を再代入する必要があります。 add メソッドを sum 変数を使用します。

sum = sum.add(BigInteger.valueOf(i));