0
関数 'spd'は、整数yの最小の素数を見つけるために使用されます。私は、コードを実行すると しかし、関係なく、「Y」の値が何であるか、戻り値は常に0if文が常にfalseを返すのはなぜですか? (戻り値は常に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;
}
変数 'retval'が初期化されていないため、そのコードはコンパイルされません。 – Ele
'y = 500'を渡し、戻り値が' 5'のコードを実行しました(変数 'retval = 0'を初期化しました)。 – Ele