为什么我的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) 个答案