Andreas Klar
Ihr Algorithmus funktioniert gut für relativ kleine Zahlen. Für große Zahlen sollten fortgeschrittene Algorithmen verwendet werden (z. B. basierend auf elliptischen Kurven). Eine andere Idee wird sein, einen "Pseudo-Primzahlen"-Test zu verwenden. Diese werden schnell testen, ob eine Zahl eine Primzahl ist, aber sie sind nicht 100% genau. Sie können Ihnen jedoch helfen, einige Zahlen schneller auszuschließen als mit Ihrem Algorithmus. Java - Primzahl-ZERLEGUNG Programm in Java. Obwohl der Compiler dies wahrscheinlich für Sie optimieren wird, sollten Sie schließlich schreiben:
int max = (int) ((n) + 1);
for (int i = 3; i <= max; i = i + 2) {}. 72034 0 0 cookie-check Was wäre die schnellste Methode, um in Java auf Primzahl zu testen?
Java - Primzahl-Zerlegung Programm In Java
Weiteres erfährst du in Büchern über Objektorientierte Softwarekonstruktion. Mein Gedanke für die Fehler-Ausgabe waren übrigens negative Zahlen Es gibt zwei Arten von Zahlen: Zahlen, die bei Division durch 17 den Rest 0 ergeben. Java - Sehr einfacher Primzahl-test - ich glaube, ich bin nicht das Verständnis der for-Schleife. Zahlen, die bei Division durch 17 nicht den Rest 0 ergeben. Die erste Art hast du durch if(prim% i == 0)... behandelt Die zweite Art hast du durch if(prim% i! = 0)... behandelt Eine Dritte Art gibt es nicht.
Hilfe Bei Java Primzahlen Tester? (Computer, Programm, Programmieren)
#1
Hallo,
wir müssen ein kleines Script schreiben, in dem wir bestimmen sollen, ob eine gegebene Zahl eine Primzahl ist (mittels isPrime). Leider hab ich keine Ahnung, wie das geht. Wäre nett, wenn mir da jemand helfen könnte. Außerdem wäre ein kleines GUI gut, was nach der Zahl fragt, dann ja oder nein sagt und dann fragt, ob man den Vorgang wiederholen oder verlassen möchte. Danke
#3
Fang doch mal damit an zu untersuchen was an einer Primzahl anders ist als an den anderen Zahlen. Damit bekommst Du dann schon mal eine Idee wie Du das überprüfen könntest. Java primzahl prüfen. Außerdem wäre ein kleines GUI gut, was nach der Zahl fragt, dann ja oder nein sagt und dann fragt, ob man den Vorgang wiederholen oder verlassen möchte. Ja, das wäre schön! Das musst Du dann einfach nur noch programmieren. #4
Na ja, eine Primzahl ist nur durch eins oder sich selbst teilbar. Genau das soll die Methode isPrime() eben überprüfen. #5
Java:
public static boolean isPrime(int n) {
return! new String(new char[n]). matches(".?
Java - Sehr Einfacher Primzahl-Test - Ich Glaube, Ich Bin Nicht Das Verständnis Der For-Schleife
entrySet()) {
(tValue() + " " + () + " Milli seconds ");}}}
Bart Kiers
Hier ist ein anderer Weg:
boolean isPrime(long n) {
if(n < 2) return false;
if(n == 2 || n == 3) return true;
if(n%2 == 0 || n%3 == 0) return false;
long sqrtN = (long)(n)+1;
for(long i = 6L; i <= sqrtN; i += 6) {
if(n%(i-1) == 0 || n%(i+1) == 0) return false;}
und BigInteger's isProbablePrime(... ) gilt für alle 32 Bit int 'S. BEARBEITEN
Beachten Sie, dass isProbablePrime(certainty) liefert nicht immer die richtige Antwort. Wenn die Gewissheit niedrig ist, führt dies zu Fehlalarmen, wie @dimo414 in den Kommentaren erwähnt. Leider konnte ich die Quelle, die behauptete, nicht finden isProbablePrime(certainty) gilt für alle (32-bit) int 's (bei genügend Gewissheit! ). Also habe ich ein paar Tests durchgeführt. Hilfe bei Java Primzahlen tester? (Computer, Programm, Programmieren). Ich habe eine erstellt BitSet von Größe X_VALUE/2 alle ungeraden Zahlen darstellen und ein Primzahlensieb verwenden, um alle Primzahlen im Bereich zu finden X_VALUE. Ich schleifte dann ab X_VALUE um das jeden zu testen new BigInteger(lueOf(i)).
Java - Die Überprüfung, Ob Eine Zahl Eine Primzahl Ist In Java
#1
Aufzustellen ist ein Algorithmus für einen Primzahltest:
Der Benutzer gibt eine Zahl ein und das Programm soll prüfen ob es sich um eine Primzahl handelt. Anforderungen an den Algorithmus: Rekursive Methode
integer x;
input( x)
boolean primzahltest ( integer a) { if ( a% (a-1) ==0) { test = false;
return test;} else { return ( a--, primzahltest);} }
Wäre das so ein rekursives Unterprogramm? Oder stimmt das generell überhaupt? #3
Ich weiß ja nicht was du da programmierst, aber das ist definitiv nicht Java. Außerdem ist der Algorithmus falsch. Bitte außerdem Codetags (siehe meine Signatur benutzen)! Java:
integer x; // Wie schon im letzten Thread von Dir, entweder Integer (groß geschrieben) oder int
input( x) // was macht das denn? // Außerdem benutzt du x überhaupt nicht weiter -> sinnlos
boolean primzahltest ( integer a) { // integer: siehe oben
if ( a% (a-1) ==0) { // Die Bedingung wird garantiert nie zutreffen (außer für a = 2)
test = false;
return test; // ließe sich auch direkt als return false; schreiben. }
15
Naja man prüft einfach nur die Primzahlen bis Wurzel n, statt alle Zahlen bis Wurzel n. Und die findet man mit dem Sieb. 16
Achso ja klar, das kann besser sein, muss aber nicht. Extrembeispiel: 4592043265702436502, es würde sicher länger dauern alle Primzahlen zu berechnen, die in dem Intervall liegen um dann rauszufinden, zwei ist Teiler der Zahl, als wenn da die Schleife mit Abbruchbedingung macht. Es hängt von dem Kontext der Anwendung ab. Wie groß sind die Zahlen die da so im Schnitt getestet werden und handelt es sich öfter wirklich um Primzahlen oder nicht. 17
ich hab mich zwar nicht weiter mit dem thema beschäftigt, aber die java-entwickler machen auch unterscheidungen:
z. b. hab ich mir mal den code der klasse array angeschaut, die ja methoden zum sortieren bereitstellt. da wird auch geprüft, ob die zahl größer oder kleiner 7 ist, und dann jeweils sortiert. so als kleine anregung
mfg
contest
-- Ein Wettnewerb für Jugendliche Programmierer --
Jeder Helfer ist willkommen
»
Java, Scala & Android »