Ich bekomme nicht die Ausgabe, die ich erwarte. Dies ist für einen Primzahltest. Ich bin mir nicht wirklich sicher, was los ist. Entweder funktioniert meine Schleife nicht richtig oder nicht.Vergleich für BigInteger funktioniert nicht
n ist ein BigInteger. Es ist eine zufällig vom Benutzer eingegebene Länge.
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;
}
}
Hier ist meine Schleife. Ich weiß jedoch, dass mein Zahlengenerator funktioniert.
do {
num1 = generateNumber(p);
} while (isPrime(generateNumber(p)) == false);
do {
num2 = generateNumber(q);
} while (isPrime(generateNumber(q)) == false);
Was ist 'n' zuerst? Außerdem sehe ich hier keine Schleife! –
Welche Eingabe geben Sie, welche Ausgabe erhalten Sie und ** wie ** ist diese Ausgabe nicht Ihren *** Erwartungen ***? –
n ist ein BigInteger. Es ist eine zufällig vom Benutzer eingegebene Länge. –