私が期待している出力が得られません。これは素数性テストのためのものです。私は本当に何が間違っているのかは分かりません。いずれかのループが正しく動作していないか、これが正しく動作していません。BigIntegerとの比較が機能しない
nはBigIntegerです。ユーザーが入力した長さによって生成されるランダムです。
public static boolean isPrime(BigInteger n) {
BigInteger zero = new BigInteger("0");
BigInteger one = new BigInteger("1");
BigInteger two = new BigInteger("2");
BigInteger three = new BigInteger("3");
System.out.println(n + " Mod 2 " + n.mod(two));
if (n.compareTo(one) == 0 || n.compareTo(one) < 0) {
//System.out.println("HIT1");
return false;
} else if (n.compareTo(three) == 0 || n.compareTo(three) < 0) {
//System.out.println("HIT2");
return false;
} else if ((n.mod(two)).compareTo(zero) == 0 || (n.mod(three)).compareTo(zero) == 0) {
//System.out.println("HIT3");
return false;
} else {
System.out.println("Heres n : " + n);
return true;
}
}
ここに私のループがあります。私は私の番号ジェネレータが動作することを確かに知っています。
do {
num1 = generateNumber(p);
} while (isPrime(generateNumber(p)) == false);
do {
num2 = generateNumber(q);
} while (isPrime(generateNumber(q)) == false);
「n」とは何ですか?さらに、私はここにループを見ません! –
何入力あなたが与えている、あなたが得ているものを出力し、**その出力は***あなたの***の期待に一致していないですか? –
nはBigIntegerです。ユーザーが入力した長さによって生成されるランダムです。 –