Primzahlprüfung, komme nicht weiter

Status
Nicht offen für weitere Antworten.

babuschka

Top Contributor
Hallo!!

Ich bin gerade dabei alte Klausuren durchzuarbeiten.
Natürlich habe ich schon einen Code erstellt, der aber wohl noch fehlerbehaftet ist. Wer von Euch kann mir weiterhelfen bzw. Tipps für einen effektiveren Code geben?!




Hier die Aufgabenstellung:

Schreiben Sie eine Java-Applikation zur Primzahlprüfung, die folgende Aufgabe löst:

a)Eingabe einer positiven ganzen Zahl n von der Tastatur
(ohne Prüfung der korrekten Dateneingabe).

b)Prüfung der ganzzahligen Teiler von n

c)Falls n nur die Teiler 1 und n hat, soll ausgegeben werden:"n ist eine Primzahl"
Sonst wird ausgegeben:"n ist keine Primzahl"



Bitte nicht über meine Versuche lachen, ich muss mich da jetzt ganz schön durchkämpfen.


Code:
class Primzahl  {
    public static void main(String[] args)  {
    
        int n,x=0,i;
        n=Integer.parseInt(args[0]);
    
        for(i=1;i<n;i++)  
    
        x=n/i;
        System.out.println(x);
        
        if (x<n)
        System.out.println("n ist keine primzahl");
    
        else
        System.out.println("n ist eine primzahl");
        }    
    }
 
S

SlaterB

Gast
welchen Sinn macht es, wenn jemand anders Aufgaben für dich löst die du nicht mal brauchst?
(falls das keine versteckte Hausaufgabe ist ;) )

du willst es doch können, also lerne es selber bzw. denke über die Aufgabe nach,

allein den Aufgabentext zu posten statt inhaltliche Fragen wie
"Wie liest man etwas von der Tastatur ein"
ist ja schon sehr bedenklich,
das steht übrigens auch in jedem Lehrbuch, wieso für sowas grundlegendes ein Forum zu befragen?

(sieh die drastischen Worte als konstruktive Kritik,
sinnvolle Fragen sind mehr als willkommen)


und falls du einfach nur einen Anfang suchst:
ohne Lehrbuch kommst du nicht weit, für diese Aufgabe reichen schon die ersten wenigen Kapitel
+ vielleicht dann einige konkrete Suchen nach Extra-Funktionalität wie das Einlesen von der Konsole
 

johanness

Mitglied
Dein Problem ist ganz unabhängig von Java: Dein Algorithmus zur Primzahlerkennung ist, vorsichtig gesagt, unvollständig. Überleg dir doch mal, wie die Primzahlerkennung funktionieren könnte, und schreibe das auf einem Blatt Papier (oder hier im Forum) auf. Und danach (!) fängst du an, das zu programmieren.
 

babuschka

Top Contributor
Ich hatte folgende Idee:

die eingegebene zahl sooft durch zwei teilen, wie es möglich ist.
dann durch ungerade teiler teilen. 3,5,7,9,11, bis der teiler größer ist.


ich mach mich jetzt an die arbeit.
steffen777
 

Marcel_Handball

Bekanntes Mitglied
Hallo Steffen,
wenn du prüfen möchtest, ob eine Zahl eine Primzahl ist, dann heißt das doch nichts anderes als, dass die Zahl nur durch sich selbst und durch Eins teilbar ist.

Also muss du alle Zahlen prüfen, die als Teiler in Frage kommen. Das heißt:

- Lege eine boolesche Klassen-Variable an, die du zu Beginn auf false stellst.
- Lass eine Schleife von 2 bis zu n durchlaufen ( einer- Schritte)

-In die Schleife kommt eine if - Anweisung: Wenn n % der Schleifenzahl ==0 dann soll die Variable auf true gesetzt werden

Hinter die Schleifen kommt dann noch eine if else Anweisung. Wenn die Variable noch auf false steht, ist die Zahl eine Primzahl, ansonsten nicht!!!!

Gruß Marcel
 

babuschka

Top Contributor
Hi Marcel!
folgendes hab ich da jetzt mal zusammengeschrieben, klappt noch nicht ganz. aber ich bleibe dran!

Code:
class Primzahl2  {
    public static void main(String[] args)  {
        
        boolean ergebnis=false;
        int k,n;
        n=Integer.parseInt(args[0]);
       
        
        
        for(k=2;k<=n;k++)
        
        if((n%k)==0)
        ergebnis=true;
        
        if(ergebnis=false)
        System.out.println("zahl ist eine primzahl");
        
        else
        
        System.out.println("Zahl ist keine primzahl");
        }
    }
 

Marcel_Handball

Bekanntes Mitglied
also das sieht schon gar nicht mal so schlecht aus.

Ein Fehler ist allerdings noch folgender
Code:
if(ergebnis=false)
in eine If-Anweisung kommen immer zwei Gleichheitszeichen (==).
Probier mal, ob es dann klappt.

Was du dir noch angewöhnen solltest ist, geschweifte Klammern zu setzen, sie sind zwar nicht nötig, solange du nur eine Anweisung benutzt, aber es ist so leichter nachzuvollziehen, wo bestimmte "Blöcke" enden (wie z.B. Schleifen oder Methoden.)

Gruß Marcel
 

Marcel_Handball

Bekanntes Mitglied
Ich sehe gerade noch folgende Fehler:

- deine Schleife darf nur bis zu der Zahl durchlaufen (nicht <=)
- ansonsten stimmt soweit alles, bis auf das Einlesen der Zahl, dies wird folgender Maßen "gemacht":


Code:
double n;
Scanner eingabe = new Scanner(System.in);
		
System.out.println(" Bitte die erste Zahl eingeben \n");
n=eingabe.nextDouble ();
So müsste es klappen!!

:)
 

babuschka

Top Contributor
funktioniert schon fast, irgendwo mit den klammern stimmt noch was nicht!
ich hatte sie jetzt an verschiedenen stellen gesetzt, bei diesem code gibt er das System.out mehrmals aus.




Code:
class Primzahl2  {
    public static void main(String[] args)  {
        
        boolean ergebnis=false;
        int k,n;
        n=Integer.parseInt(args[0]);
        
        for(k=2;k<=n;k++)  {
        
        if((n%k)==0)
        ergebnis=true;
        
   
        
        if(ergebnis==false)
        System.out.println("zahl ist eine primzahl");
        
        else
        
        System.out.println("zahl ist keine primzahl");
        }
    }
}
 

babuschka

Top Contributor
Hey es funktioniert!
Darf ich die Eingabe so wie ich sie gestaltet habe, gar nicht machen??
Hab da vom Prof. ein Skript und der macht das mit diesen parse.

Ich danke Dir schon mal für Deine Mühe!!
 

Marcel_Handball

Bekanntes Mitglied
Schön das es geklappt hat,

zu deiner Frage, ob man die Eingabe auch mit parse durchführen kann, weiß ich leider nicht. Bin selbst noch Schüler und programmiere zurzeit mehr Applets als "Dos-Applikationen".

Hab allerdings eines vergessen, weshalb es mich ein wenig wundert, warum dein Programm schon funktioniert: Es müsste eigentlich noch folgende Anweisung fehlen: import java.util.*;

Code:
import java.util.*;

class prim  {
    public static void main(String[] args)  {
       
        boolean ergebnis=false;
        int k;
		double n;
		Scanner eingabe = new Scanner(System.in);
		
        System.out.println(" Bitte die erste Zahl eingeben \n");
		n=eingabe.nextDouble ();
       
       
       
        for(k=2;k<n;k++){if((n%k)==0){ergebnis=true;}}
       
        if(ergebnis==false){
        System.out.println("zahl ist eine Primzahl");}
       
        else{System.out.println("Zahl ist keine Primzahl");}
            
	} 
}

Das ganze Programm sehe dann folgender Maßen aus.
Wenn du demnächst, oder jetzt vielleicht noch weiter Fragen hast, kannst du sie mir ruhig stellen. :)

Gruß Marcel
 

babuschka

Top Contributor
Ich dank Dir erstmal!
Ich hab noch zwei Aufgaben auf ähnlichem Niveau, aber ich will mich ertmal selbst versuchen! Dann werde ich gerne noch mal posten!

Gruss,
Steffen
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Java Lotto Spiel; ich komme nicht weiter Java Basics - Anfänger-Themen 15
K Probleme bei der Ausgabe - komme nicht weiter :/ Java Basics - Anfänger-Themen 15
B Keine Ausgabe .. Woran liegt das? Ich komme nicht weiter Java Basics - Anfänger-Themen 14
P Ich komme nicht mehr weiter bei so einer einfachen Sache... Java Basics - Anfänger-Themen 18
N Ich weiß nicht, wie ich meinen Code richtig designen soll und komme nicht weiter Java Basics - Anfänger-Themen 4
D Komme nicht weiter... Java Basics - Anfänger-Themen 4
N JSON - komme nicht weiter Java Basics - Anfänger-Themen 2
E Taschenrechner problem! Ich komme nicht voran Java Basics - Anfänger-Themen 18
B Erste Schritte Wie komme ich aus Static raus?!! Java Basics - Anfänger-Themen 4
S Komme nicht weiter...:-/ Java Basics - Anfänger-Themen 3
D Endlosschleife und ich komme nicht raus! Java Basics - Anfänger-Themen 8
N Explode in Java (split). Komme nicht weiter. Java Basics - Anfänger-Themen 2
H inputfeld dezimalzahl mit komme statt punkt Java Basics - Anfänger-Themen 12
K Hilfe, komme nicht weiter in meinem JAVA-Spiel Java Basics - Anfänger-Themen 3
A Befehl gesucht....wie komme ich an Folgendes Objekt? Java Basics - Anfänger-Themen 6
S Ich komme mit Java nicht klar Java Basics - Anfänger-Themen 7
0 Calendar - komme nicht weiter mit add Java Basics - Anfänger-Themen 2
J Anfängeraufgabe - komme nicht weiter Java Basics - Anfänger-Themen 2
J Arrayübergabe, ich komme nicht weiter Java Basics - Anfänger-Themen 2
D DefaultEditorKid komme nicht weiter! Java Basics - Anfänger-Themen 4
M Komme net weiter Java Basics - Anfänger-Themen 7
T Hilfe..ich komme bei Klassen nicht mer weiter Java Basics - Anfänger-Themen 4
E wie komme ich an den key einer hashmap Java Basics - Anfänger-Themen 8
K 50 errormeldungen- komme auch nach vielen Nachmittagen nicht weiter. bitte helfen Java Basics - Anfänger-Themen 39
G Wie komme ich an das Pfadtrennzeichen? Java Basics - Anfänger-Themen 7
G 3. Aufgaben und komme nicht weiter (Felder, Methoden) Java Basics - Anfänger-Themen 3
G J2EE Tutorial . komme nicht weiter Java Basics - Anfänger-Themen 7
F Komme aus der Delphi-Welt und brauch jetz Java. Java Basics - Anfänger-Themen 5
M RegExp mit "Untergruppen" - wie komme ich an die? Java Basics - Anfänger-Themen 4
L Liste in Liste wie komme ich wieder an die Objekte ran Java Basics - Anfänger-Themen 5
G Instanziierung [HILFE ich komme nicht weiter] Java Basics - Anfänger-Themen 10
G Hilfe komme nicht weiter bei diesen aufgaben Java Basics - Anfänger-Themen 2
J Package kompileren/ausführen - komme nicht weiter Java Basics - Anfänger-Themen 4
P Komme mit relativen Pfadangaben durcheinander Java Basics - Anfänger-Themen 8
K Programm in der main()-Methode starten: Wie? Komme von C++ Java Basics - Anfänger-Themen 11
R komme nicht weiter Java Basics - Anfänger-Themen 10
K komme in meinem stammchat nicht rein. Java Basics - Anfänger-Themen 6
G Owner von JDialog;Komme einfach nicht weiter Java Basics - Anfänger-Themen 4
megachucky nochmal JDBC. komme nicht weiter. Java Basics - Anfänger-Themen 4
D komme heute mit dem DecimalFormat nicht klar... Java Basics - Anfänger-Themen 2
S Wie komme ich an den Text, aus einem JTextfield? Java Basics - Anfänger-Themen 6
C komme nicht klar mit den Threads Java Basics - Anfänger-Themen 5
H komme mit casten nicht klar Java Basics - Anfänger-Themen 3
A "Hello World"-Programm läuft nicht Java Basics - Anfänger-Themen 16
D Regex greift nicht richtig Java Basics - Anfänger-Themen 4
richis-fragen JTable den angezeigten WERT nicht den Wert aus dem Model ausgeben. Java Basics - Anfänger-Themen 3
richis-fragen JTable Header ausgeblendete (width = 0) nicht per mouseDragged aufziehen. Java Basics - Anfänger-Themen 9
M Ausgabe einer ArrayList ensteht nur als Hashcode, nicht als Objekt Java Basics - Anfänger-Themen 16
K Warum wird mir auf der Konsole des Servers nicht "xxxx" angezeigt (Server/Client) Java Basics - Anfänger-Themen 4
K Warum wird hier nur etwas in eine txt Datei geschrieben und nicht in alle drei (InputStream/OutputStream/Reader/Writer) Java Basics - Anfänger-Themen 1
richis-fragen JTable effektiv angezeigter Text ausgeben nicht Inhalt vom Model Java Basics - Anfänger-Themen 9
S nach Import von jars (PLC4x) in Eclipse kann nicht mehr compiliert werden Java Basics - Anfänger-Themen 9
J Datenüberwachung funktioniert nicht Java Basics - Anfänger-Themen 9
S Wie debugge ich dies am besten: SingleThreadExecutor führt Task nicht aus..? Java Basics - Anfänger-Themen 29
H JDK installieren jdk-21 wird nicht erkannt Java Basics - Anfänger-Themen 13
N Klassen Hintergrundfarbe in JPanel ändert sich nicht Java Basics - Anfänger-Themen 3
K Warum wird mir "Empfangen vom Client:" nicht sofort ausgegeben(Server/Client) Java Basics - Anfänger-Themen 3
mo13 JTextField funktioniert nicht Java Basics - Anfänger-Themen 4
J .jar datei öffnen funktioniert nicht Java Basics - Anfänger-Themen 17
M Methode zielnah zeigt das gewünschte Ausgabe nicht an Java Basics - Anfänger-Themen 3
K Verstehe Rekursion nicht ganz Java Basics - Anfänger-Themen 7
M OOP Brüche nicht richtig berechnen Java Basics - Anfänger-Themen 3
N Ich kriege ganze zeit die Fehlermeldung "Inhalt der Zwischenablage kann nicht in die ausgewählten Elemente eingefügt werden" hat jemand eine Lösung? Java Basics - Anfänger-Themen 6
K TicTacToe belegtes feld nicht neu besetzbar Java Basics - Anfänger-Themen 1
K TicTacToe belegtes Feld nicht neu besetzbar Java Basics - Anfänger-Themen 3
A Warum wird mein jdk nicht gefunden? Java Basics - Anfänger-Themen 3
M Queue-Datenstruktur: nach dem Elementen entfernen, das Ergebnis ist immer noch nicht optimal. Java Basics - Anfänger-Themen 3
K Programm compilierbar aber nicht ausführbar... Java Basics - Anfänger-Themen 21
N Hey Leute und zwar versuche ich gerade ein 2D Spiel zu Programmieren aber die Figur will sich nicht nach links oder rechts bewegen :( Java Basics - Anfänger-Themen 12
G Mit jPackage erstellte EXE funktioniert nicht Java Basics - Anfänger-Themen 2
N BMI Rechner Was haltet ihr von dem Code habt ihr Verbesserungsvorschläge weil design teschnisch ist das nicht das geilste würde das gerne überarbeiten Java Basics - Anfänger-Themen 12
G Robot funktioniert nicht bei SelectionListener Java Basics - Anfänger-Themen 6
D MacOS: PDF erstellen geht nicht Java Basics - Anfänger-Themen 1
G Kann Java-Programm nicht als jar aufrufen, auch als EXE nicht Java Basics - Anfänger-Themen 19
J jar Befehl wird nicht erkannt Java Basics - Anfänger-Themen 7
missy72 Erste Schritte (nicht) Deterministischer endlicher Automat Java Basics - Anfänger-Themen 9
T Getter/Setter - wie sieht ein Setter aus? Und wie nicht? Java Basics - Anfänger-Themen 34
T catch(InputMismatchException) wird nicht ausgefürt/erkannt Java Basics - Anfänger-Themen 12
T Methode akzeptiert String nicht Java Basics - Anfänger-Themen 18
P Netbeans installation geht nicht Java Basics - Anfänger-Themen 26
R RegEx funktioniert nicht Java Basics - Anfänger-Themen 14
T HashMap Lsite gibt die sachen nicht aus wie gewollt. Java Basics - Anfänger-Themen 3
H Counter durch gepresste Taste nur auf 1 erhöhen und nicht durchzählen lassen Java Basics - Anfänger-Themen 7
S 2 Reihen ratio-btn, eine Reihe funktioniert andere nicht Java Basics - Anfänger-Themen 4
T scanner nicht erkannt Java Basics - Anfänger-Themen 3
monsterherz Punkt Notation funktioniert nicht Java Basics - Anfänger-Themen 4
monsterherz Fehler Semikolon fehlt - ich weiss aber nicht wo da noch eines hin sollte... Java Basics - Anfänger-Themen 21
R Java kann nicht installiert werden Java Basics - Anfänger-Themen 8
marcelnedza Finde meinen Fehler in einer Methode nicht, Java Karol Java Basics - Anfänger-Themen 15
monsterherz einfache Methode mit Fehler den ich nicht finde Java Basics - Anfänger-Themen 21
monsterherz if / else if mit Fehler den ich leider nicht finde Java Basics - Anfänger-Themen 11
D Jar Datei startet unter Linux nicht Java Basics - Anfänger-Themen 3
KeinJavaFreak Erste Schritte Programm "Java(TM) Platform SE binary " nicht vorhanden Java Basics - Anfänger-Themen 1
KeinJavaFreak Erste Schritte Java "Executable Jar File" nicht vorhanden Java Basics - Anfänger-Themen 1
M Konstruktor-Aufruf im Konstruktor, aber nicht am Anfang? Java Basics - Anfänger-Themen 4
G Variable aktualisiert sich nicht in rekursiver Methode Java Basics - Anfänger-Themen 4
Darkherobrine9 Import klappt nicht Java Basics - Anfänger-Themen 7
N Programm Funktioniert mit .txt Datei aber nicht mit .rtf Datei Java Basics - Anfänger-Themen 2
R Compiler-Fehler Variable wird nicht gefunden bzw. erkannt? Java Basics - Anfänger-Themen 2
_so_far_away_ Inventarisierungssystem brauche switch Cases und weiß nicht, wie ich e implementieren muss Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben