有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

为什么我的if语句总是返回false?(返回值始终为0)

函数“spd”用于查找整数y的最小素数因子。 然而,当我运行代码时,无论“y”的值是什么,返回的值总是0

public static BigInteger spd (int y) {

    ArrayList<BigInteger> primes = new ArrayList<BigInteger>();

    int retval;
    int Nth_prime = 10000;
    BigInteger getn;
    BigInteger y2 = BigInteger.valueOf(y);
    BigInteger TWO = new BigInteger("2");
    BigInteger bi = new BigInteger("1");

    primes.add(TWO);

    int i = 1;

    while (i < Nth_prime) {
        bi = bi.add(TWO);
        if (bi.isProbablePrime(40)) {
            i++;
            primes.add(bi);
        }
    }

    BigInteger zero = new BigInteger ("0");
    BigInteger ret;
    BigInteger one  = new BigInteger ("1");

    for (int n = 0; n < y2.intValue(); n++) {
        if (y2.mod(primes.get(n)).equals(zero)) {
            retval = primes.get(n).intValue();
        }
    }   

    BigInteger returning = BigInteger.valueOf(retval);

    return returning;
}

共 (0) 个答案