Ich möchte ein Java-Programm schreiben, um die Primzahl auf große Werte zu überprüfen. Ich hatte diesen Code geschrieben, aber es gibt Fehler in meinem Code. Bitte helfen Sie mir, das zu lösen, damit es für große Werte gut funktioniert.Überprüfen Sie die Primzahl auf große Werte in Java, ohne eingebaute Funktionen zu verwenden.
Auch ist mein Ansatz richtig für die Überprüfung der Primzahl für große Zahlen ohne integrierte Funktionen?
Andere mögliche Lösungen/Ansätze, bitte.
My_Code:
import java.math.*;
import java.util.Scanner;
public class CheckPrimeNumber {
public static void main(String[] args)
{
int flag=0;
BigInteger input;
try{
Scanner sc= new Scanner(System.in);
System.out.println("Enter a valid positive number: ");
String strinput=sc.nextLine();
input = new BigInteger(strinput);
sc.close();
if(input.equals(0) ||input.equals(1)){
System.out.println(input+" is not a prime number.");
}
else{
for(BigInteger i=2; i < input.divide(2); i++){
if(input.remainder(2) == 0){
System.out.println(input+" is not a prime number.");
flag=1;
break;
}
}
if(flag==0)
System.out.println(input +" is a prime number.");
}
}
catch(Exception e){
System.out.println("Please enter only valid positive number: ");
}
finally{
System.out.println("Thank you...!!!");
}
}
}
Für große Zahlen verwenden Sie die Idee, dass, gegeben n, n ist prim, wenn es nicht teilbar ist durch einen Primzahl im Bereich von 0 bis sqrt (n) – FattySalami
Trial Division ist wahrscheinlich zu langsam, um die Primzahl von großen Ganzzahlen zu bestimmen . Ein guter Algorithmus für diesen Fall ist der Miller-Rabin-Algorithmus, den Sie mit Hilfe von Google oder über [mein Blog] (https://programmingpraxis.files.wordpress.com/2012/09/primenumbers.pdf) finden können. . – user448810
Können Sie die genauen Fehler posten, die Sie in Ihrer Frage erhalten? – Keara