BigInteger没有增加?

时间:2016-09-11 04:12:38

标签: java

由于某种原因,我的val变量在while循环中没有增加。有什么原因,为什么它没有这样做? val.add(BigInteger.ONE);

import java.math.*;

public static void main(String[] args) {

    /* Variables */
    BigInteger PQ = new BigInteger("17");
    BigInteger E = new BigInteger("7");

    BigInteger val = new BigInteger("2");

    /* Find the PRIME factors of PQ */
    while (PQ.compareTo(BigInteger.ONE) == 1) { // while the first value is greater
        if (PQ.mod(val).equals(BigInteger.ZERO)) {
            System.out.print(val + "  ");
        } else {
            val.add(BigInteger.ONE);
        }
    }
}

2 个答案:

答案 0 :(得分:7)

val.add(BigInteger.ONE)会返回一个新值。您不会将其分配给任何内容:

val = val.add(BigInteger.ONE);

Class BigInteger

答案 1 :(得分:0)

您可以再次初始化总和。

BigInteger val=BigInteger.valueOf(10);
BigInteger val2=BigInteger.valueOf(20);
BigInteger val3=va1.add(val2);