Algorithmus um nächst folgende Primzahl zu berechnen

sh33p

Bekanntes Mitglied
Ich überlege mir gerade, wie man einen algorithmus definieren kann, der bei einer eingebenen zahl prim die nächste primzahl liefert..
2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31

bis zur zahl 13 sieht das alles super aus,da is bis auf 2->3 immer 2er Abstände sind.

Java:
public class SuccPrim {



  public static void main(String[] args) {
  
  Scanner scan = new Scanner(System.in);
  System.out.println("Bitte geben Sie die Primzahl ein");
  int primzahl = scan.nextInt();

  System.out.println(Prim(primzahl));
  }
  
  public static int Prim(int prim){
  int ergebnis;
  if(prim==2){
  ergebnis = 3;
  return ergebnis;

  }else{

      prim = prim+2;
      ergebnis = prim;
      return ergebnis;
    }
  }


  }

Wie kann ich einen Alg. schreiben,der wirklich, unabhängig welche Primzahl eingeben wurde, die nächste Primzahl in der Folge liefert? Die Prüfung,ob die eingebene Zahl wirklich eine Primzahl ist,soll hier mal außenvor stehen
 

Ebenius

Top Contributor
Wie kann ich einen Alg. schreiben,der wirklich, unabhängig welche Primzahl eingeben wurde, die nächste Primzahl in der Folge liefert? Die Prüfung,ob die eingebene Zahl wirklich eine Primzahl ist,soll hier mal außenvor stehen
Ohne alle kleineren Primzahlen zu kennen? Wenn Du das löst, dann bezahlt Dir jeder Geheimdienst der Welt eine Menge Geld (oder erschießt Dich).

:)

Ebenius
 
wie die folge der primzahlen definiert ist weiß nur gott. du wirst also nich drumrumkommen einfach nur bei den höheren zahlen auszuprobieren obs primzahlen sind.
 

nrg

Top Contributor
z.b.
Java:
public class Prime {
	static int[] lowPrimes = { 2, 3, 5, 7 };
	public static void main( String[] args) {
		System.out.println( nextPrime( 73 ) );
	}
	public static int nextPrime( int prime ) {
		while ( !isPrime( ++prime ) );
		return prime;
	}
	public static boolean isPrime( int prime ) {
		for ( int i : lowPrimes )
			if ( prime % i == 0 && prime != i ) return false;
		return true;
	}
}
 
J

JohannisderKaeufer

Gast
z.b.
Java:
public class Prime {
	static int[] lowPrimes = { 2, 3, 5, 7 };
	public static void main( String[] args) {
		System.out.println( nextPrime( 73 ) );
	}
	public static int nextPrime( int prime ) {
		while ( !isPrime( ++prime ) );
		return prime;
	}
	public static boolean isPrime( int prime ) {
		for ( int i : lowPrimes )
			if ( prime % i == 0 && prime != i ) return false;
		return true;
	}
}

Nur das das bei isPrime(121) true rauskommt, wo false drin sein soll.
11 * 11 = 121 und 11 ist nicht in deinen lowPrimes enthalten.

Und irgendwoher müßen die lowPrimes ja herkommen. Also irgend ein Orakel muß dir schon die low Primes verraten, oder du mußt sie berechnen. Dann kannst du aber das schließen auf die nächste Primzahl einer gegebenen Zahl auch seinlassen.

Was funktioniert ist ein Algorithmus der als Abbruchkriterium die Quadratwurzel einer zu überprüfenden Zahl berücksichtigt.
Java:
public static boolean isPrime( int prime ) {
int sqrt = Math.sqrt(prime);
		for ( int i : lowPrimes ){
                        if ( i > sqrt) return false;
			if ( prime % i == 0 && prime != i ) return false;
}
		return true;
	}

das kann den Algorithmus schon wesentlich beschleunigen, so daß nur potentielle Primfaktoren berücksichtigt werden. Ist ein Primfaktor größer als sqrt, dann ist mindestens ein anderer kleiner als sqrt. Bei einer Primzahl ist das egal, bei einem Primzahlkandidaten spart es je größer er ist enorm.

Bleibt allerdings die Frage wie man zu den lowPrimes kommt.

Indem man sie generiert.

Java:
public static boolean isPrime( int prime ) {
int sqrt = Math.sqrt(prime);
int i = nextPrime(1);
while ( i<= sqrt ){
	if ( prime % i == 0 && prime != i ) return false;
              i = nextPrime(i);
}
		return true;
	}

Da ich das ganze jetzt nicht laufen lasse, versteht sich um die Zeit müßte lediglich ein next Prime ergänzt werden um eine Endlos Schleife/Rekursion zu umgehen.

Java:
public static int nextPrime( int prime ) {
if(prime == 1) return 2;
		while ( !isPrime( ++prime ) );
		return prime;
	}

Würd mich mal interessieren ob das läuft?
 
Zuletzt bearbeitet von einem Moderator:

Landei

Top Contributor
Prinzipiell ist es ein großer Unterschied, ob man alle Primzahlen von 2 bis zu einer gegebenen Grenze berechnen will (dann bietet sich das Sieb des Eratosthenes oder - komplexer und schneller - des Atkin an) oder nur eine bestimmte Zahl testen will. Für größere Zahlen ist es ratsam, erst einmal einen schnellen probablistischen Primzahltest zu machen (der eine minimale Wahrscheinlichkeit hat, auch bestimmte zusammengesetzte Zahlen als prim zu melden), etwa Miller-Rabin. Insgesamt gibt es eine fast biologische Vielfalt an Primzahltests, z.B. auch Varianten, die nur für bestimmte Zahlentypen funktionieren (etwa Lucas-Lehmer für Mersenne-Primzahlen). Damit nicht zu verwechseln sind Verfahren zum bestimmen der Primfaktoren, die wesentlich langsamer sind (auf dieser Asymmetrie beruhen Verschlüsselungsverfahren wie RSA).
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Algorithmus für Arbeit mit fehlenden Listenelementen? Allgemeine Java-Themen 1
schegga_B AES-Algorithmus in javax.crypto Allgemeine Java-Themen 3
M Laufzeit des Prim Algorithmus Allgemeine Java-Themen 3
O Newton Algorithmus Java Allgemeine Java-Themen 1
CptK Backpropagation Algorithmus Allgemeine Java-Themen 6
N Google Authenticator Algorithmus (SHA1) Allgemeine Java-Themen 1
gotzi242 Schatzsuche mithilfe eines O(log n) Algorithmus Allgemeine Java-Themen 2
Zrebna Quicksort-Algorithmus - zufälliges Pivot wählen Allgemeine Java-Themen 6
L Klassen Algorithmus für das folgende Problem entwickeln? Allgemeine Java-Themen 30
B Algorithmus Warteschlange Ringpuffer wirklich fehlerfrei Allgemeine Java-Themen 8
M Probleme mit Negamax-Algorithmus Allgemeine Java-Themen 29
F Q - Learning Algorithmus Bug Allgemeine Java-Themen 4
M Salesman Problem - Bruteforce Algorithmus Allgemeine Java-Themen 23
M Minmax Algorithmus Verständnisproblem Allgemeine Java-Themen 2
H Rundreise frage (Algorithmus) Allgemeine Java-Themen 18
F KMP-Algorithmus Allgemeine Java-Themen 9
S Algorithmus welcher True-Werte in einem Array findet und auswertet. Allgemeine Java-Themen 5
U Methoden Algorithmus MergeSort String [ ] array sortieren programmieren Allgemeine Java-Themen 17
P MinMax Algorithmus Allgemeine Java-Themen 0
J Abhängigkeit zwischen Rechenzeit und Speicherbedarf in einen Algorithmus Allgemeine Java-Themen 7
K Djikstra-Algorithmus Allgemeine Java-Themen 1
T Minimax/Alphabeta Algorithmus hängt sich auf (?) Allgemeine Java-Themen 2
M Algorithmus zum Zahlen einteilen Allgemeine Java-Themen 8
O Best Practice Hilfe bei Algorithmus gesucht Allgemeine Java-Themen 10
S Algorithmus um Objekte auf einer Flaeche mit gleichem Abstand anzuordnen..? Allgemeine Java-Themen 20
S Rucksackproblem und genetischer Algorithmus Allgemeine Java-Themen 9
L Abbruch des Algorithmus Allgemeine Java-Themen 8
D Input/Output Ausgleichen chemischer Reaktionsgleichungen mit dem Gauß-Algorithmus Allgemeine Java-Themen 2
Messoras A*-Algorithmus integrieren Allgemeine Java-Themen 3
S Buchscan 3D Dewarp Algorithmus - Ansätze Allgemeine Java-Themen 1
B Verteilungs-/Vergabe-Algorithmus mit abhängigen Score-Werten Allgemeine Java-Themen 3
Androbin "Shunting Yard"-Algorithmus Allgemeine Java-Themen 6
B Algorithmus - Project Euler Problem 18 Allgemeine Java-Themen 2
N Algorithmus zum bewerten von mathematischen Funktionen Allgemeine Java-Themen 11
O Algorithmus Optimierung Allgemeine Java-Themen 3
Joew0815 Algorithmus - Zahlenfolge in 4 ähnliche Teile aufteilen Allgemeine Java-Themen 0
O Tag Cloud Algorithmus Idee gesucht Allgemeine Java-Themen 2
A Implementierung eines Algorithmus (Farthest Insertion zur Lösung des TSP) in O(n²) Allgemeine Java-Themen 2
C Eclipse Probleme bei selbst erstelltem Algorithmus Allgemeine Java-Themen 2
H Graph-Algorithmus gesucht Allgemeine Java-Themen 21
N Algorithmus durch Workflow Allgemeine Java-Themen 7
M tree-based diff Algorithmus (Code-Vergleiche) Allgemeine Java-Themen 3
S Uhrzeit Algorithmus sale Allgemeine Java-Themen 11
N A*-Algorithmus Allgemeine Java-Themen 5
A Suche Algorithmus zum Erstellen eines planaren Graphen Allgemeine Java-Themen 5
F Methoden Algorithmus zur Gegnerfindung (Turnier) Allgemeine Java-Themen 9
T Algorithmus Graph Allgemeine Java-Themen 10
J Algorithmus gesucht (Stringtransformation) Allgemeine Java-Themen 4
B Algorithmus Krankenhausbelegung Allgemeine Java-Themen 17
S Algorithmus von Dijkstra Allgemeine Java-Themen 2
alex_fairytail OOP Banknoten Algorithmus Teil 2 Allgemeine Java-Themen 13
2 ArrayList aktualisieren Algorithmus Allgemeine Java-Themen 11
alex_fairytail Methoden Banknoten Algorithmus Allgemeine Java-Themen 10
R Codehinweise: Algorithmus Größenvergleich von n Zahlen Allgemeine Java-Themen 5
SuperSeppel13 WTF?! Algorithmus-Geschwindigkeitstest Allgemeine Java-Themen 2
L Algorithmus für kürzesten Weg mit Wegpunkten Allgemeine Java-Themen 21
C Algorithmus Problem in Minesweeper Allgemeine Java-Themen 5
S Algorithmus um Labyrinth zu erzeugen Allgemeine Java-Themen 6
V Problem mit A* Pathfinder-Algorithmus Allgemeine Java-Themen 2
S Algorithmus Problem. Rechtecke effizient auf Spielfeld anordnen. Allgemeine Java-Themen 7
C Algorithmus-Hilfe Allgemeine Java-Themen 20
J Algorithmus Längenkombinationen? Allgemeine Java-Themen 7
M Kombinationen über rekursiven Algorithmus berechnen? Allgemeine Java-Themen 10
L Algorithmus für Poker-Hände Allgemeine Java-Themen 7
chik 2 return werte für Greedy-Algorithmus (gelöst) Allgemeine Java-Themen 3
D Abstruse Probleme mit eigenem replace Algorithmus Allgemeine Java-Themen 11
P RC4 Algorithmus Allgemeine Java-Themen 3
D RSA Verfahren - Erweiterter Euklidischer Algorithmus Allgemeine Java-Themen 4
C IBAN und Bic Validieren (Algorithmus) Allgemeine Java-Themen 10
P Problem mit A*-Algorithmus Allgemeine Java-Themen 12
M Wörter Algorithmus Allgemeine Java-Themen 7
M Algorithmus für automatische Zeilenumbrüche Allgemeine Java-Themen 12
K Postleitzahlen Algorithmus Allgemeine Java-Themen 12
G Problem mit Algorithmus Allgemeine Java-Themen 3
T Hilfe bei einem Algorithmus Allgemeine Java-Themen 2
S Stemming-Algorithmus gesucht (z.B. Porter) Allgemeine Java-Themen 2
RoliMG präfix zu infix algorithmus Allgemeine Java-Themen 6
Z A*-Algorithmus - Probleme mit offener/geschlossener Liste Allgemeine Java-Themen 7
S Javaimplementierung des MD5 Algorithmus Allgemeine Java-Themen 2
E Container-Pack-Algorithmus Allgemeine Java-Themen 4
G k nearest neighbor algorithmus Allgemeine Java-Themen 7
C HASH Algorithmus 2 Strings ergeben das Selbe. Allgemeine Java-Themen 2
P Page Rank Algorithmus implementieren Allgemeine Java-Themen 7
T Problem RSA-Algorithmus in Java? Allgemeine Java-Themen 2
minzel Hash-Algorithmus Allgemeine Java-Themen 9
Y komprimierung mittels Huffman-Algorithmus, bit-shifting. Allgemeine Java-Themen 2
K Algorithmus Allgemeine Java-Themen 10
C Algorithmus für Array Allgemeine Java-Themen 9
I Verschlüsselung mit Pwd. - User soll Algorithmus wählen Allgemeine Java-Themen 4
J fällt euch ein Algorithmus ein? Allgemeine Java-Themen 4
S Algorithmus für Sudoku Allgemeine Java-Themen 17
N Euklidischer Algorithmus in Java und keine Terminierung. Allgemeine Java-Themen 7
F Algorithmus für Sortierung gesucht Allgemeine Java-Themen 15
T Algorithmus verbessern Allgemeine Java-Themen 10
U Suche Algorithmus zur bestimmung des längsten Wegs Allgemeine Java-Themen 3
U Ford-Fulkerson Algorithmus gesucht Allgemeine Java-Themen 1
U Dijkstra Algorithmus gesucht Allgemeine Java-Themen 4
D Algorithmus für die Erkennung fehlerhafter Eingaben Allgemeine Java-Themen 4
I hash-algorithmus Allgemeine Java-Themen 9
Zrebna Was bedeutet folgende Fehlermeldung...? Allgemeine Java-Themen 1

Ähnliche Java Themen

Neue Themen


Oben