Schnellster Algorithmus, um herauszufinden, ob eine BigInteger-Zahl eine Primzahl ist oder nicht? [Duplikat
Diese Frage hat hier bereits eine Antwort:
Schnellster Primalitätstest 3 answersIch schreibe eine Methode, die erkennt, ob eine BigInteger-Zahl eine Primzahl ist oder nicht. Ich habe den folgenden Code / Algorithmus verwendet, um zu überprüfen, ob eine bestimmte Zahl eine Primzahl ist oder nicht. Dies ist jedoch extrem langsam und dauert lange, wenn eine Zahl beispielsweise 10 Ziffern lang ist.
public boolean returnPrime(BigInteger testNumber){
int divisorCounter=1;
BigInteger index,i ;
for ( index= new BigInteger("2"); index.compareTo(testNumber) !=1; index=index.add(new BigInteger("1"))){
System.out.println(index);
for(i= new BigInteger("2"); i.compareTo(index) != 1; i=i.add(new BigInteger("1"))){
if((testNumber.mod(i).equals(BigInteger.ZERO) )){
divisorCounter++;
}
if(divisorCounter>2){
return false;
}
}
}
return true;
}
Gibt es bessere Algorithmen für BigInteger-Primzahlen? Ich konnte keine diesbezügliche Frage in Stackoverflow finden. Wenn Sie auf eine solche Frage gestoßen sind, lassen Sie es mich bitte wissen, oder wenn Sie eine Idee zur Lösung haben, sind Ihre Ideen sehr willkommen.