Diese Methode soll zählen, wieviele Primzahlen es zwischen von und bis gibt, und das Ergebnis zurückliefern. Wenn dies funktionert, erweitern Sie das Programm, so dass es jeweils 10 Zahlenblöcke mit jeweils 1000 Zahlen (von 1 bis 1000, 1001 bis 2000 usw. ) dahingehend prüft, wieviele Primzahlen in dem jeweiligen Block existieren.
Du musst eine Schleife machen, die die zu Testende Zahl nacheinander durch alle kleineren Zahlen teilt, aber nicht mit dem / operator, sondern mit dem teilen, das den "Rest" ausgibt. (Ich glaub das ist der Mod (für modulo) Operator. ) Wenn es keinen Rest gibt (dieser 0 ist), dann ist die Zahl teilbar und somit keine Primzahl. For (int counter=2; counter++; counter < zahl){ if(zahl% counter==0) then abbruch;}% ist eine Abkürzung für den modulo Operator. Topnutzer im Thema Programmieren Du musst nur bis zur Zahl (n-1) testen, jede Zahl ist glatt durch sich selbst teilbar, ansonsten steht in dem Zitat schon alles, was du machen musst. Feststellen, ob eine Zahl durch eine andere teilbar ist, kannst du mit dem Modulo-Operator ermitteln public static boolean isPrim(long n) { if (n <= 2) return true; for (long i = 2; i <= n/2; i++) if (n% i == 0) return false; return true;} das gilt natürlich nur für n > 0! JAVA Primzahlen berechnen - Verständnisfrage? (Computer, Schule, Programmieren). Was ist eine "Probedivision"? Noch nie von sowas gehört...
ansonsten abbrechen und primzahl false Du brauchst nur bis Zahl/2 zu prüfen. Es gibt noch weitere Optimierungsmöglichkeiten, wenn die Zahl Nicht durch 2 Teilbar ist, kannst du eh alle geraden Teiler weglassen.... Woher ich das weiß: Beruf – Jahrzehnte IT Erfahrung, Experte für Kryptowährungen, 🐱
#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. 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. Java - Wie funktioniert das Primzahl-test in Java zu arbeiten?. #5 Java: public static boolean isPrime(int n) { return! new String(new char[n]). matches(".?
Jimmy Sie haben den ersten Schritt getan, indem Sie alle Vielfachen von 2 eliminiert haben. Aber warum haben Sie dort aufgehört? Sie hätten alle Vielfachen von 3 außer 3 eliminieren können, alle Vielfachen von 5 außer 5 usw. Wenn Sie dieser Argumentation zu Ende folgen, erhalten Sie die Sieb des Eratosthenes. Brandon E Taylor Werfen Sie einen Blick auf die AKS-Primzahltest (und seine verschiedenen Optimierungen). Es ist ein deterministischer Primzahltest, der in polynomieller Zeit abläuft. Java - Primzahl-ZERLEGUNG Programm in Java. Es gibt eine Implementierung des Algorithmus in Java von der Universität Tübingen (Deutschland) hier Karl Ein Schnelltest nach Jaeschke (1993) ist eine deterministische Version des Miller-Rabin-Tests, der keine falsch positiven Ergebnisse unter 4. 759. 123. 141 hat und daher auf Java angewendet werden kann int S. // Given a positive number n, find the largest number m such // that 2^m divides n. private static int val2(int n) { int m = 0; if ((n&0xffff) == 0) { n >>= 16; m += 16;} if ((n&0xff) == 0) { n >>= 8; m += 8;} if ((n&0xf) == 0) { n >>= 4; m += 4;} if ((n&0x3) == 0) { n >>= 2; m += 2;} if (n > 1) { m++;} return m;} // For convenience, handle modular exponentiation via BigInteger.