Primzahlen

Status
Nicht offen für weitere Antworten.

tanjaHS

Mitglied
Hallo ihr lieben,

ich muss ein kleines Programm schreiben das mir alle Primzahlen kleiner als dem eingegebenen Wert liefert. Ich hab das wie folgt getan, jedoch erhalte ich immer nur die erste und dann bricht er einfach ab. Bitte helft mir!!!

Code:
public class PrimzahlenMitSchleifen {

	public static void main(String[] args) {
		
		println("Please enter a number!");

		/*Startwert von b auf 2 denn alle Zahlen >1 sollen durch die 
		Eingabe n geteilt werden um zu sehen ob es sich um eine 
		Primzahl handelt oder nicht*/
		int b = 2;
		
		//Eingabe
		int n = readInt();

			/*so lange b < als der Eingabe ist und n > 1 ist
			 Beispiel: n = 15 -> 15:2 nicht gerade ? dann 15:3
			 usw bis b auf 14 und damit 15:14 ist das ergbnis immer
			 ungerade handelt es sich um eine Primzahl, dann n--
			 und das gleiche mit 14
			 */
			while((b<n) && (n>1)){
						
				int c = n % b;		
				if(c!=0){
					b++;
				}else{
					n--; 
					// b wieder auf 2 setzen
					b = 2;
					}		
			}
			println(n+" ist eine Primzahl"); 

  }
}

das ganze funktioniert. Er macht das mit 15,14 aber wenn er dann die erste Primzahl 13 entdeckt bricht er ab. WIESO ? da ich ja haben will das er mir alle < Eingabe ausgibt.

Ich hoffe ihr könnt mir helfen. DANKE
 

Landei

Top Contributor
Habe keine Lust, darüber nachzudenken, was obiger Code tut. Auf jeden Fall nicht das, was in der Aufgabenstellung steht, denn dann brauchtest du zwei Schleifen.

Einfach zu verstehender, unoptimierter Code (keine Gewähr, aus'm Kopp):
Code:
for(int b = 2; b < n; b++) {
   boolean isPrimeNumber = true;
   for(int d = 2; d*d <= b; d++) {
       if (b % d == 0) { //Teiler gefunden
           isPrimeNumber = false; 
           break;
       }
   }
   if (isPrimeNumber) {
      System.out.println("" + b + " ist eine Primzahl");
   }
}
 

tanjaHS

Mitglied
Hmm ja die Aufgabe könnte ich so zwar so lösen, aber weiter helfen würde es mir nicht. Ich will ja mein Problem verstehen, also wo ich was falsch gemacht habe. Aber danke trotzdem.
 

Landei

Top Contributor
Ich habe schon gesagt, was du falsch machst: Du brauchst zwei verschachtelte Schleifen.
Offenbar willst du n vom eingegeben Wert an verkleinern, bis du bei n = 1 ankommst. Deine Schleife bricht aber schon vorher ab wegen der Bedingung (b<n). Diese Bedingung gehört da nicht rein, du must dein b in einer eigenen Schleife (innerhalb deiner n-Schleife) kreiseln lassen. Also
- Außere Schleife: n von Eingabewert runter bis 1
- Innere Schleife: b von 2 bis n-1 (es reicht auch von 2 bis Wurzel von n, wie in meinem Code)
 

tanjaHS

Mitglied
Landai ich habe das jetzt mit 2 Schleifen versucht aber ab ..... weiss ich nicht mehr weiter, kannst du mir bitte helfen

Code:
		for(int n =readInt(); n>1 && n<=readInt(); n--){
			
			for(int b = 2; b<=n-1 && n%b!=0; b++){
				int c = n%b;
                              //.......
			}	
		}

ich wollte halt nach
Code:
int c = n%b;
eine if abrage machen. Also
Code:
if(c==0){break;}
dann soll er wieder in die erste rein und n--. Aber wenn das nicht der fall ist dann mit
Code:
else if(c!=0){println(n)}
und dann wieder n-- und das ganze spiel von vorn. Aber so wie ich das mache klappt es nicht.
 

tanjaHS

Mitglied
HABS GESCHAFFT DANKE FÜR EURE HILFE !!!!! :D

Code:
package uebung04;

import static gdi.MakeItSimple.println;

public class PmWS {
	/**
	 * @param args
	 */
	public static void main(String[] args) {
	      
	      println("Please enter a number!");
	      int b = 2;
	      
	      //Eingabe
	      int n = readInt();

	         while((b<n) && (n>1)){
	                  
	            for(b=2; b>1 && b<=n; b++){
	            	int c = n %b;
	            	if(c==0){
	            		n--;
	            		b=1;
	            	}else{
	            		if(c!=0 && b==n-1){
	            			println(n+" ist eine Primzahl");
	            			
	            		}
	            	}
	            	
	            }
	            n--;
	            b=2;
	        	      
	         }

	  } 
}
 

Landei

Top Contributor
Geschafft ja, aber vieel zu kompliziert. Es reicht nicht, wenn der Code läuft, man muss auch möglichst einfach sehen können, ob er korrekt ist.
Schau dir bitte noch mal meine oder eine der vielen anderen Lösungen, die im Internet rumschwirren, an, und versuche sie zu verstehen.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
iAmFaiinez Primzahlen Tester ohne Array Java Basics - Anfänger-Themen 4
sserio Wieso werden nicht alle Primzahlen bis 1000 in meine Liste gepackt ? Java Basics - Anfänger-Themen 8
B Primzahlen bis 100 addieren Java Basics - Anfänger-Themen 16
H Primzahlen finden - Zeit optimieren Java Basics - Anfänger-Themen 34
S Primzahlen in Array ausgeben Java Basics - Anfänger-Themen 14
M Array auf Primzahlen prüfen Java Basics - Anfänger-Themen 7
D Primzahlen Rechner nach Eratostenes von Kyrene Algorithmus Java Basics - Anfänger-Themen 2
fendix Compiler-Fehler Algorithmus zur Bestimmung von Primzahlen Java Basics - Anfänger-Themen 7
P Methode die ausgibt wie viele Primzahlen es zwischen 2 und n gibt Java Basics - Anfänger-Themen 10
G Primzahlen von Rekursiv nach Iterativ Java Basics - Anfänger-Themen 6
M Rekursives Programm zum Anzeigen von Primzahlen Java Basics - Anfänger-Themen 3
P Primzahl mit Angabe der höchsten Primzahl und Angabe der Anzahl von Primzahlen bis 100 Java Basics - Anfänger-Themen 8
Java The Hutt Primzahlen - die ersten 100 Java Basics - Anfänger-Themen 17
N Erste Schritte Primzahlen-ArrayIndexOutOfBounds Java Basics - Anfänger-Themen 23
R Primzahlen Zähler Programm / Benachbarte Primzahlen Java Basics - Anfänger-Themen 30
D Klassen Primzahlen überprüfen Java Basics - Anfänger-Themen 3
I Primzahlen Java Basics - Anfänger-Themen 17
Z Rekursion Primzahlen Java Basics - Anfänger-Themen 1
M Erste Schritte primzahlen ermitteln, nur zahlen als eingabe erlauben Java Basics - Anfänger-Themen 34
S Primzahlen berechnen funktioniert nicht richtig Java Basics - Anfänger-Themen 1
R primzahlen im array Java Basics - Anfänger-Themen 33
M Primzahlen, nur jede 2te ausgeben Java Basics - Anfänger-Themen 11
T Primzahlen Fehler Java Basics - Anfänger-Themen 4
K Primzahlen Java Basics - Anfänger-Themen 6
L Primzahlen im Array ausgeben Java Basics - Anfänger-Themen 3
P Primzahlen Java Basics - Anfänger-Themen 3
A Methoden Primzahlen erstellen von 1 bis 100-Codeprobleme Java Basics - Anfänger-Themen 2
H Variablenverfolgung - Primzahlen Java Basics - Anfänger-Themen 7
G Primzahlen Java Basics - Anfänger-Themen 6
D Primzahlen und Rekursive Liste Java Basics - Anfänger-Themen 29
S Primzahlen bis 1000 ausgeben Java Basics - Anfänger-Themen 3
K Methoden Primzahlen Java Basics - Anfänger-Themen 33
S Input/Output Primzahlen Datenbank Java Basics - Anfänger-Themen 11
F Primzahlen in Zahlenblöcken ausgeben Java Basics - Anfänger-Themen 9
M Primzahlen - es werden alle Nicht-Primzahlen ausgegeben Java Basics - Anfänger-Themen 5
M primzahlen Java Basics - Anfänger-Themen 4
S Programm zu Ermittlung von Primzahlen Java Basics - Anfänger-Themen 14
E Programm zum Primzahlen ausgeben-Fehler Java Basics - Anfänger-Themen 12
X Primzahlen Java Basics - Anfänger-Themen 7
S Primzahlen Java Basics - Anfänger-Themen 12
B Programmierobjekt - Primzahlen Java Basics - Anfänger-Themen 2
D Primzahlen ausgeben. Wo liegt der Fehler? Java Basics - Anfänger-Themen 4
N Primzahlen Java Basics - Anfänger-Themen 5
I Primzahlen check, String prüfen lassen. Java Basics - Anfänger-Themen 6
A OOP Programm zum bestimmen von Primzahlen, OutofBoundsException Java Basics - Anfänger-Themen 10
apple987123 Primzahlen Java Basics - Anfänger-Themen 12
A Primzahlen: ein paar offene Fragen Java Basics - Anfänger-Themen 2
G Primzahlen Java Basics - Anfänger-Themen 18
B Primzahlen berechnen - Wieso unterschiedliche Java Basics - Anfänger-Themen 3
B Primzahlen Algorithmus - wo ist der Fehler ? Java Basics - Anfänger-Themen 2
E Primzahlen Java Basics - Anfänger-Themen 5
B Primzahlen mit Array errechnen! Java Basics - Anfänger-Themen 13
H Miller Rabin Test Primzahlen werden teilweise nicht gefunden Java Basics - Anfänger-Themen 5
M Wer kann mir bei Primzahlen helfen ? Java Basics - Anfänger-Themen 4
G Frage zur Primzahlen berechnung Java Basics - Anfänger-Themen 11
kulturfenster Primzahlen berechnen Java Basics - Anfänger-Themen 11
D Primzahlen Java Basics - Anfänger-Themen 4
N Zerlegung in Primzahlen Java Basics - Anfänger-Themen 7
F Programm Primzahlen Java Basics - Anfänger-Themen 5
J Primzahlen errechnen.ArrayLists abgleichen Java Basics - Anfänger-Themen 2
M Primzahlen Java Basics - Anfänger-Themen 6
C Primzahlen Java Basics - Anfänger-Themen 7
C Primzahlen Java Basics - Anfänger-Themen 2
S Primzahlen Java Basics - Anfänger-Themen 49

Ähnliche Java Themen

Neue Themen


Oben