Primzahl Ausgabe falsch

xyZman

Bekanntes Mitglied
Hi Community !
Ich möchte Primzahlenpärchen ausgeben. Vorerst aber natürlich erstmal den normalen Algo um eine Primzahl zu berechnen. Habe ihn nun so ungesetzt. Die Ausgabe Primzahl/Keine Primzahl passt aber nicht.. wo ist mein Fehler ?
Java:
import AlgoTools.IO;
class primzahl {
public static void main(String arguments[])
{
int obereschranke,untereschranke,div,erg,i;
boolean prim;

System.out.println("////////////////////////////Primzahl - F.K/////////////////////");
untereschranke = IO.readInt("Bitte geben Sie die untere Schranke ein:");
obereschranke = IO.readInt("Bitte geben Sie die obere Schranke ein:");
prim=true;
for(i=untereschranke;i<=obereschranke;i++)
{
div=2;
while((i-1)>=div)
{
erg=i%div;
if (erg==0)
{
System.out.println(i+"Keine Primzahl");
prim=false;
break;
}
div++;
}
if (prim==true)
System.out.println(i+ "Primzahl");
}
}
}
}


Flo
 

Purgator

Aktives Mitglied
Dein prim = true muss in die for schleife rein.
Ansonsten wird immer davon ausgegangen (nachdem einmal eine nicht-primzahl gefunden wurde) das die Primzahl keine solche ist und die Bedingung if(prim == true) wird nie erfüllt.

Edit: zudem würde ich behaupten deine while könnte auch
while (i/2 >= div)
heißen, müsste genauso gut als Test funktionieren, weil eine zahl die größer als i/2 ist ja kein teiler von i sein kann.
 

xyZman

Bekanntes Mitglied
Hi Purgator !
Danke für den Hinweis. Habe mich schon dumm und dusselig gesucht wo denn der Fehler ist.
Ich mach mich jetzt daran herauszufinden wie man die Primzwillinge anzeigt. 5 und 7
3 und 5
differenz = 2
Ich darf nicht mit Arrays und dem Sieb von E arbeiten.
Habe mir überlegt die erste primzahl in variable 1 zu schreiben und die 2. in variable 2
dann variable 2 -variable1 =2 ?

Wie ist der GEdanke ?


Flo
 

XHelp

Top Contributor
Wie ist der GEdanke ?

Wenn du solche Vorgaben hast, heißt es so gut wie: du kannst die Ergebnisse nicht speichern.
Vorschlag wäre:
Du hast min...max Bereich. Dann suchst du in diesem Bereich eine Primzahl x und überprüfst ob x+2 eine Primzahl ist, wenn ja, dann gibst du das Paar aus. Dannach suchst du die nächste Primzahl.
 

Purgator

Aktives Mitglied
Prinzipiell wäre ich auch so vorgegangen.
Allerdings brauchst du glaube ich nur eine neue Variable - die derzeitige hast du ja bereits in i zu stehen.
Wenn dann die Bedingung if(prim == true) erfüllt ist, könntest du dann testen ob (i-lastPrim) == 2 ist
(wenn ja den zwilling ausgeben) und danach lastPrim = i setzen.

Alternativ könntest du auch einfach nur einen boolean nutzen.
Wenn du nämlich anstatt jede zahl immer nur jede 2. testen würdest (nämlich jede ungerade, da ausser 2 jede gerade zahl eine primzahl ist - aber selbst bei 2 kommt es ja auf die Definition von Primzahlen an) würde der boolean halt angeben ob die zuletzt getestete Zahl eine Primzahl war. Wenn nun die aktuelle Zahl eine Primzahl ist würdest du das überprüfen und so weiter... also fast genauso wie oben vorgehen.
Bei dieser Variante müsstest du wegen den 2er Schritten halt noch ein wenig mehr am code anpassen (der dafür, zumindest in der theorie, schneller werden würde, da er etliche nicht-Primzahlen erst garnicht testet).

Ansonsten fällt mir spontan auch keine einfach andere Methode ein muss ich zugeben.
 

XHelp

Top Contributor
Wenn du nämlich anstatt jede zahl immer nur jede 2. testen würdest (nämlich jede ungerade, da ausser 2 jede gerade zahl eine primzahl ist - aber selbst bei 2 kommt es ja auf die Definition von Primzahlen an)

jeder gerade ausser 2 ist keine Primzahl (vermutlich aber nur Tippfehler). Warum soll es bei der 2 auf die Definition ankommen? :bahnhof:
 

Purgator

Aktives Mitglied
Arg sry.
War kein Tipp-, sondern ein Denkfehler.
Habe das mit der 1 vertauscht (gibt ja die Definition "Jede Zahl die nur durch 1 UND sich selbst teilbar ist" und da wurde von einigen Leuten aus meiner uni gemeint das es nicht auf 1 zutreffe... aber Mathe war ich nie gut).
Aber stimmt, 2 dürfte egal wie man es dreht und wendet, eine Primzahl sein :oops:
 

XHelp

Top Contributor
Habe das mit der 1 vertauscht (gibt ja die Definition "Jede Zahl die nur durch 1 UND sich selbst teilbar ist" und da wurde von einigen Leuten aus meiner uni gemeint das es nicht auf 1 zutreffe... aber Mathe war ich nie gut).

Das Thema habe ich schon mal gesehen... aber 1 ist keine Primzahl. Die lässt sich zwar nur durch 1 und sich selber teilen, aber dennoch würden einige Sachen nicht mehr stimmen, wenn man die 1 als Primzahl zulässt. z.B. die Aussage "Primfaktorzerlegung ist eindeutig" würde schon mal nicht klappen, da 6=2*3=2*3*1*1=2*3*1*1*1*1*1 ist. Auf diesem Theorem bauen dann andere Sachen auf etc etc.
 

xyZman

Bekanntes Mitglied
Prinzipiell wäre ich auch so vorgegangen.
Allerdings brauchst du glaube ich nur eine neue Variable - die derzeitige hast du ja bereits in i zu stehen.
Wenn dann die Bedingung if(prim == true) erfüllt ist, könntest du dann testen ob (i-lastPrim) == 2 ist
(wenn ja den zwilling ausgeben) und danach lastPrim = i setzen.

Muss lastprim nicht nach dem Schleifendurchlauf zuerst = i gesetzt werden da lastprim beim ersten vergleich ja noch nicht initialisiert wurde ?
Also wenn i = Primzahl dann
Lastprim = i

ich weis noch nicht ganz genau wo ich es einbauen soll...
Kann mir wer helfen ?

gruß


Flo
 
Zuletzt bearbeitet:

xyZman

Bekanntes Mitglied
habs nun so gelöst.
Leider gibt er mir die 5 ist zwilling von 7 nicht aus. Alle anderen schon.
Woran liegt es ?
Java:
import AlgoTools.IO;
class primzahl {
public static void main(String arguments[])
{
int obereschranke,untereschranke,div,erg,i,lastprim;
boolean prim;

System.out.println("////////////////////////////Querteiler - F.K/////////////////////");
untereschranke = IO.readInt("Bitte geben Sie die untere Schranke ein:");
obereschranke = IO.readInt("Bitte geben Sie die obere Schranke ein:");
lastprim=2;
for(i=untereschranke;i<=obereschranke;i++)
{
prim=true;
div=2;
while((i/2)>=div)
{
erg=i%div;
if (erg==0)
{
System.out.print("");
prim=false;
break;
}
div++;
}
if (prim==true && i>1)
{
if(i-lastprim==2)
{
IO.println(lastprim+" ist Primzwilling von "+i);
}
else
{
lastprim=i;
}
}
}
}
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Primzahl mit Angabe der höchsten Primzahl und Angabe der Anzahl von Primzahlen bis 100 Java Basics - Anfänger-Themen 8
C Ganzzahlige Werte in Boolean ausgeben und überprüfen ob Primzahl oder nicht, wenn es keine Primzahl ist soll es die Primfaktorzerlegung ausgeben Java Basics - Anfänger-Themen 4
O Primzahl rekursiv mit einem Wert ohne i, wie? Java Basics - Anfänger-Themen 6
O Erste Schritte Primzahl Methode Java Basics - Anfänger-Themen 8
I Erste Schritte Testen, ob eine Zahl eine Primzahl ist Java Basics - Anfänger-Themen 8
O Primzahl bis n Java Basics - Anfänger-Themen 5
D Primzahl Aufgabe Java Basics - Anfänger-Themen 5
R Primzahl ja/nein - besserer Code möglich? Java Basics - Anfänger-Themen 2
T Primzahl Java Basics - Anfänger-Themen 12
I Höchste Zahl berechnen die eine Eingabe ohne Rest teilt und eine Primzahl ist Java Basics - Anfänger-Themen 2
U Primzahl-Tester Java Basics - Anfänger-Themen 3
A 10001-te Primzahl herausfinden Java Basics - Anfänger-Themen 5
L primzahl Java Basics - Anfänger-Themen 54
R Primzahl kleiner 3 Java Basics - Anfänger-Themen 2
T Primzahl Schleife Java Basics - Anfänger-Themen 15
M Primzahl Java Basics - Anfänger-Themen 11
D Array Fehler / groesste Primzahl suchen Java Basics - Anfänger-Themen 4
F Primzahl oder nicht?! Java Basics - Anfänger-Themen 7
S Primzahl in einem Array finden Java Basics - Anfänger-Themen 21
J Primzahl mit for Schleife Java Basics - Anfänger-Themen 4
A Fehler im Primzahl Programm Java Basics - Anfänger-Themen 17
S Primzahl berechnen in Java Java Basics - Anfänger-Themen 7
K Primzahl//immer true Java Basics - Anfänger-Themen 7
ven000m Primzahl.class wie starte ich diese einzelne Datei? Java Basics - Anfänger-Themen 10
M Primzahl Java Basics - Anfänger-Themen 8
W Nächstgelegene Primzahl Java Basics - Anfänger-Themen 3
I Primzahl suchen Java Basics - Anfänger-Themen 5
G primzahl oder nicht? Java Basics - Anfänger-Themen 16
M Ausgabe einer ArrayList ensteht nur als Hashcode, nicht als Objekt Java Basics - Anfänger-Themen 16
M Methode zielnah zeigt das gewünschte Ausgabe nicht an Java Basics - Anfänger-Themen 3
M Ausgabe beim Overloading Java Basics - Anfänger-Themen 3
H Frage zur Ausgabe Java Basics - Anfänger-Themen 4
H Java-Programm zur Ausgabe von Zuständen Java Basics - Anfänger-Themen 80
S Einfach-Verkettete-Listen Ausgabe zeigt nur 1. und letzte instanz Java Basics - Anfänger-Themen 2
T float soll durch schleife die größte mögliche Zahl herausfinden, Ausgabe ist aber "Infinity" Java Basics - Anfänger-Themen 1
B Binärzahlen auflisten, falsche Ausgabe? Java Basics - Anfänger-Themen 1
M Java Ausgabe der höchsten Zahl Java Basics - Anfänger-Themen 14
M Erste Schritte While Schleife / Ausgabe von buchstabe & ASCII Wert Java Basics - Anfänger-Themen 4
nelsonmandela Problem bei Ausgabe einer Switch - Case Funktion Java Basics - Anfänger-Themen 5
W Streams in Java und was bedeutet meine Konsolen-Ausgabe? Java Basics - Anfänger-Themen 4
B Automatisierte Ausgabe (Schleife, If-Abfrage?) Java Basics - Anfänger-Themen 24
C 2D Array Ausgabe mit for-Schleife i,j Java Basics - Anfänger-Themen 4
B Deadlock verstehen der Ausgabe! Java Basics - Anfänger-Themen 12
Lion.King Ausgabe mit Eigenschaften Java Basics - Anfänger-Themen 4
D Java Pattern mit X Ausgabe Stern Java Basics - Anfänger-Themen 4
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 0
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 5
Xaver code Tastatur ausgabe Java Basics - Anfänger-Themen 4
R Anfänger: Ausgabe kommt minus raus? Java Basics - Anfänger-Themen 6
K Leerzeile in Konsolen-Ausgabe Java Basics - Anfänger-Themen 4
K Zweite Ausgabe von vererbten Klassen Java Basics - Anfänger-Themen 3
Q return Ausgabe Java Basics - Anfänger-Themen 4
C Java Arrays - Ausgabe in Methode Java Basics - Anfänger-Themen 12
D Best Practice Ausgabe über direkte Ausgabe oder try-catch? Java Basics - Anfänger-Themen 13
S Ausgabe des Variablenwerts Java Basics - Anfänger-Themen 10
I Ausgabe nicht nur senkrecht sondern auch waagerecht. Java Basics - Anfänger-Themen 2
paulen1 Methoden Unerwünschte Ausgabe bei System.out.print in For-Schleife Java Basics - Anfänger-Themen 8
C Ausgabe boolean return ((n==9)||(n==0)); Java Basics - Anfänger-Themen 13
F Double Ausgabe nicht wissenschaftlich Java Basics - Anfänger-Themen 16
danieldemetry Java - Graph Komponenten - Ausgabe Java Basics - Anfänger-Themen 0
S Fragen zu Ausgabe double und float Java Basics - Anfänger-Themen 3
B Ausgabe in TextArea funktioniert nicht Java Basics - Anfänger-Themen 2
D BigDecimal Ausgabe sehr lang. Java Basics - Anfänger-Themen 2
J String Ausgabe Java Basics - Anfänger-Themen 2
TimoN11 IntelliJ , Ausgabe von einem Quellcode in Eingabe eines Quellcodes Java Basics - Anfänger-Themen 1
Kalibru Problem bei Ausgabe von Objekt Java Basics - Anfänger-Themen 1
KogoroMori21 Array-Ausgabe Java Basics - Anfänger-Themen 6
JaVaN0oB Wörterraten - Falsche Ausgabe, String/Chars vergleichen Java Basics - Anfänger-Themen 2
E Ausgabe überschreiben Java Basics - Anfänger-Themen 15
D Ausgabe von Array Java Basics - Anfänger-Themen 2
U Ausgabe Java Basics - Anfänger-Themen 4
J Buchstabenhäufigkeit mit Array und Ausgabe des häufigsten Buchstaben Java Basics - Anfänger-Themen 25
V Multiplikationstafel - Ausgabe Java Basics - Anfänger-Themen 4
L Warum ist die Ausgabe anders als das was im Bezeichner steht? Java Basics - Anfänger-Themen 4
M In gleicher zeile hinter ausgabe noch etwas ausgeben Java Basics - Anfänger-Themen 1
newcomerJava Nach doppelter Zahl eine Ausgabe Java Basics - Anfänger-Themen 10
H Falsche Ausgabe Java Basics - Anfänger-Themen 2
P Klassenübergreifende Ausgabe mittels "getter" nicht möglich Java Basics - Anfänger-Themen 21
R Call-by-Value, Call-by-Reference, Call-by-Name Ausgabe Java Basics - Anfänger-Themen 1
JavaClap "Bruchrechner" liefert Fehler/keine Ausgabe bei Addition und Subtraktion Java Basics - Anfänger-Themen 0
D Warum erfolgt folgende Ausgabe und warum? Java Basics - Anfänger-Themen 4
C Ausgabe in der Konsole Java Basics - Anfänger-Themen 11
M Problem bei Ausgabe Java Basics - Anfänger-Themen 7
C Konvertierung des int typs in den double typ für die Ausgabe mit Nachkommastellen Java Basics - Anfänger-Themen 4
A Ausgabe mit boolean Java Basics - Anfänger-Themen 3
K Probleme bei der Ausgabe - komme nicht weiter :/ Java Basics - Anfänger-Themen 15
G Problem bei der Ausgabe einer Main Claase Java Basics - Anfänger-Themen 7
Y Methode + Parameters + Ein und Ausgabe Java Basics - Anfänger-Themen 1
K Methodenaufruf /-ausgabe Java Basics - Anfänger-Themen 5
A Wiederholte Ausgabe vermeiden Java Basics - Anfänger-Themen 16
B Collections Objektreferenz-ID in der Ausgabe (Comparator Interface) Java Basics - Anfänger-Themen 2
M Wie analysiert JSON eine toString-Ausgabe ? Java Basics - Anfänger-Themen 1
T Vererbung Verschiedene Fahrzeugtypen mit unterschiedlicher Ausgabe Java Basics - Anfänger-Themen 17
T Ausgabe einer for Schleife Java Basics - Anfänger-Themen 2
S Elemente eines Arrays bei Ausgabe auslassen Java Basics - Anfänger-Themen 2
M Ausgabe einer Liste welche mehrere Stacks enthält Java Basics - Anfänger-Themen 3
T Text-Ausgabe für Textadventure - Organisation Java Basics - Anfänger-Themen 5
G Unterklassen (Klasse für Ausgabe) Java Basics - Anfänger-Themen 4
N Eingabe des Users direkt hinter die Ausgabe Java Basics - Anfänger-Themen 3
J Methode zur Ausgabe eines Dreiecks aus Sternen schreiben? Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben