Primzahltest-Problem

Status
Nicht offen für weitere Antworten.
J

JavaGhost

Gast
Hallo! Wie kann ich in diesen Primzahltest reinbringen, dass wenn ich das Programm nach einer Zahl frage, z.B. x, dass das Prog dann ne Rechnung anstellt und mir sagt, ob x prim ist oder nciht?
Hier der Test:
Vielen Dank im Voraus.

Code:
*/
public class pzt {

    public static boolean isPrime(int number) {

        if (number < 2) {
            return false;
        } else if (number == 2) {
            return true;
        } else {


            if (number % 2 == 0) {
                return false;
            }

        
            for (int i = 3; i <= Math.sqrt(number); i = i + 2) {

                if (number % i == 0) {
                    return false;
                }
            }
            return true;
        }
    }

    public static void main(String[] arguments) {

        for (int z = 1; z <= 100; z++) {

            if (isPrime(z)) {
                System.out.println(z + " is prime.");
            }
        }
    }
}
 
G

Guest

Gast
Code:
public class pzt {

    public static boolean isPrime(int number) {

        if (number < 2 || number%2 == 0) 
        {
            return false;
        }

        for (int i = 3; i <= Math.sqrt(number); i = i + 2) 
        {
        	if (number % i == 0) 
        	{
        		return false;
            }
        }
            
        return true;
    }

    public static void main(String[] arguments) {

        for (int z = 1; z <= 100; z++) {

            if (isPrime(z)) {
                System.out.println(z + " is prime.");
            }
        }
    }
}
 

Ariol

Top Contributor
War nicht eingeloggt und hab die 2 vergessen:

Code:
public class pzt {

    public static boolean isPrime(int number) {

        if (number < 2 || number%2 == 0) 
        {
            return false;
        }
        else if(number == 2)
        {
        	return true;
        }

        for (int i = 3; i <= Math.sqrt(number); i = i + 2) 
        {
        	if (number % i == 0) 
        	{
        		return false;
            }
        }
            
        return true;
    }

    public static void main(String[] arguments) {

        for (int z = 1; z <= 100; z++) {

            if (isPrime(z)) {
                System.out.println(z + " is prime.");
            }
        }
    }
}
 

Ariol

Top Contributor
?? das ist deine ganze Klasse einfach die alte pzt überschreiben

mom, ich setzt noch schnell codetags
 

Ariol

Top Contributor
War noch ein Fehler drin:

Code:
public class pzt {

    public static boolean isPrime(int number) {


        if(number == 2)
        {
        	return true;
        }
    	
        if (number < 2 || number%2 == 0) 
        {
            return false;
        }

        for (int i = 3; i <= Math.sqrt(number); i = i + 2) 
        {
        	if (number % i == 0) 
        	{
        		return false;
            }
        }
            
        return true;
    }

    public static void main(String[] arguments) {

        for (int z = 0; z <= 100; z++) {

            if (isPrime(z)) {
                System.out.println(z + " is prime.");
            }
        }
    }
}
 
J

JavaGhost

Gast
Hm gut. Aber wie frag ich den jetzt, ob x eine Primzahl ist?
 
J

JavaGhost

Gast
Ach Mensch, irgendwie geht das nicht. Ich bekomm dann immer nur gesagt: (beim Linux Terminal)

"sbeppel@jbone:~> isPrime(7);
bash: syntax error near unexpected token `7'"

Muss ich vorher noch was eingeben?
 
J

JavaGhost

Gast
Wo muss ich das denn dann noch einfuegen? Bitte, ich brauch die Hilfe jetzt wirklich ganz dringend.. das mit der Insel hab ich mir auch schon mal durchgelesen.. nur einmal, bitte!
 

Der Müde Joe

Top Contributor
Code:
public static void main(String[] arg) {
int i = 0;

if(arg.lenght > 0){
i = Integer.parseInt(arg[0]);
}
else{
System.out.println("Shit happens");
}

if(isPrime(z)) 
 System.out.println(z + " is prime.");
}
else{
System.out.println(z + " is NOT prime.");    
}

Ich bin mal so lieb

EDIT:

da is noch en Fehler:

length schreibt man so
 
J

JavaGhost

Gast
Wozu ist das "shit happens" da?! Kannst du mir nochmal den kompletten Code geben, ich versprech dir dann auch, dass ich das dann alles alleine kann :)
 

Der Müde Joe

Top Contributor
du rufst das Programm via Konsole auf zB

java pzt 7

die sieben wird eingelesen und befindet sich an der Stelle arg[0]

wenn
java ptz

dann hats keine Argumente...also arg.length == 0
somit haste keine Zahl zu rechenen...Shit happens...
 
J

JavaGhost

Gast
Kannst du mir einmal den ganzen Code geben, bitte? Also alles zusammen, so bekomm cih das nicht hin. Danke.
 

Ariol

Top Contributor
Aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaargh.................

(Soll heißen es steht schon 1 kompletter Code und eine alternative Main-Methode hier drin!!!)
 

Der Müde Joe

Top Contributor
Code:
public class Prime{

public static boolean isprime(int n) {
        if (n < 2) {
            return false;
        }
        else if (n == 2) {
            return true;
        }
        else if (n % 2 == 0) {
            return false;
        }
        else {
            for (int i=3; i*i<=n; i+=2) {
                if (n%i==0) {
                    return false;
                }
            }
            return true;
        }
}


public static void main(String[] arg) {
int i = 0;

if(arg.lenght > 0){
i = Integer.parseInt(arg[0]);
}
else{
System.out.println("Shit happens");
}

if(isPrime(z))
System.out.println(z + " is prime.");
}
else{
System.out.println(z + " is NOT prime.");   
}

}

wobei ich bezweifle das du es so hinbringst (nicht bös gemeint)

EDIT:
der Fehler hat sich durchgepastet
length schreib man immer noch so
 
G

Gast

Gast
Code:
public static void main(String[] arg) {
int i = 0;

if(arg.lenght > 0){
i = Integer.parseInt(arg[0]);
}
else{
System.out.println("x");
}

if(isPrime(z))
System.out.println(z + " is prime.");
}
else{
System.out.println(z + " is NOT prime.");   
}

wenn ich den kompilieren versuche, sagt er mir dass 1 error drin ist. wie mach ich den weg?
 
J

javaghost

Gast
Der Fehler ist behoben, jetzt bekomme ich folgendes:

pzt3.java:1: 'class' or 'interface' expected
public static void main(String[] arg) {
^
1 error
 

FelixB

Bekanntes Mitglied
Hast du die Datei "Prime.java" genannt?

lies dir mal ein paar Grundlagensachen durch, das hilft dir auch für die Schule/Uni weiter...
 
G

Gast

Gast
Ja, das stimmt soweit. Habe aber immer noch 2 Fehler mit dem Prime-Code von da oben drin...

pzt3.java:37: illegal start of type
else{
^
pzt3.java:40: <identifier> expected
^
2 errors
 

Ariol

Top Contributor
"Geh nach Hause lies ein Buch"

Nix gegen Anfänger, aber so ein paar Grundlagen sollte man sich doch schon selbst über Bücher und Tutorials aneignen.

Javaghost, du hast ja nicht mal eine Ahnung davon, was Klassen oder Methoden sind und wie man kompiliert.....

Wenn du das Programm gemacht haben willst schick mir deine E-Mail-Adresse, dann send ich dir die java-Dateien (das Programm ist ja jetzt eh schon fertig)

Ich helf normalerweise echt gerne, wenn ich kann, aber bei 0 Eigeninitiative kommt man sich schon leicht verars...t vor.
 

Ariol

Top Contributor
@Der Müde Joe

Dein Code war wirklich voller fehler:
2 Klammern nicht geschlossen
Groß&Kleinschreibung nicht beachtet
Variable i genannt, aber z aufgerufen...


So gehts:
Code:
public class Prime{

public static boolean isPrime(int n) 
{
	if (n < 2) 
	{
            	return false;
        	}
        	else if (n == 2) 
	{
            	return true;
        	}
        	else if (n % 2 == 0) 
	{
            	return false;
        	}	
        	else 
	{
	            for (int i=3; i*i<=n; i+=2) 
		{
            		if (n%i==0) {
            	        	return false;
                	}
            }
            return true;
        }
}


public static void main(String[] arg) 
{
	int z = 0;

	if(arg.length > 0)
	{
		z = Integer.parseInt(arg[0]);
	}
	else
	{
		System.out.println("Shit happens");
	}

	if(isPrime(z))
	{
		System.out.println(z + " is prime.");
	}
	else
	{
		System.out.println(z + " is NOT prime.");   
	}

}
}
 
B

bygones

Gast
wobei zu erwaehnen ist dass dieser algo sehr ineffizent ist.

die for schleife macht unnoetige vergleiche...
i = 3 ist sagen wir false, ergo braucht man nicht mehr 9,15,27, usw testen....

aber so fuern anfang ist das schon in ordnung
 

Ariol

Top Contributor
deathbyaclown hat gesagt.:
wobei zu erwaehnen ist dass dieser algo sehr ineffizent ist.

die for schleife macht unnoetige vergleiche...
i = 3 ist sagen wir false, ergo braucht man nicht mehr 9,15,27, usw testen....

aber so fuern anfang ist das schon in ordnung

??

Der Code bricht ab, wenn er ein false auswirft, der macht dann nicht noch weiter.


Beispiel für die 10 check 3 (10%3!=0) check 5(10%5=0) -> bricht die Methode ab und wirft ein false aus.

So schlecht ist der Algo nicht
 
B

bygones

Gast
Ariol hat gesagt.:
deathbyaclown hat gesagt.:
wobei zu erwaehnen ist dass dieser algo sehr ineffizent ist.

die for schleife macht unnoetige vergleiche...
i = 3 ist sagen wir false, ergo braucht man nicht mehr 9,15,27, usw testen....

aber so fuern anfang ist das schon in ordnung

??

Der Code bricht ab, wenn er ein false auswirft, der macht dann nicht noch weiter.


Beispiel für die 10 check 3 (10%3!=0) check 5(10%5=0) -> bricht die Methode ab und wirft ein false aus.

So schlecht ist der Algo nicht
dein beispiel trifft nicht meinen kritikpunkt.
sagen wir er test 10293471 ob es einen primzahl ist.
dann faengt der algorithmus an auf 3 zu testen, sagen wir es ist false, er checkt ob auf 5, dann auf 7.
bis dahin alles ok.
nun kommt 9 und das testet er auch. da er aber schon 3 getestet hat ist es logisch, dass die zahl nicht durch 9 teilbar sein kann, genauso wie durch 15. also ist dieser test dann auch unsinnig, der algorithmus macht ihn aber, da er einfach immer +2 testet und nicht vorhandenes wissen einsetzt.


der perfekte algorithmus waere, wenn man einfach alle primzahlen bisdahin durchlaueft und die testet... da man aber das nicht kann muss man einen workaround machen. dieser algorithmus ist einer, aber nicht unbedingt der beste !
 

Ariol

Top Contributor
axo, ja ok

dafür gibts ja ansätze, aber ich vermute mal, dass hier eher der umgang mit modulo und schleifen sowie logischem denken getesetet werden sollte.
Es gibt ja noch schlechtere Algorithmen (%4,%6,%7....) Da ist der Ansatz doch schon ganz gut.


Am besten gehts natürlich mit einer Liste, in die man alle schon gefundenen Primzahlen reinlegt und jede Zahl mit den Werten aus dieser Liste vergleicht, solange diese Werte nicht Wurzel(Zahl) übersteigt - Schneller gehts kaum ;)

Aber halt nur wenn man alle Primzahlen zwichen 0 und x herausfinden will, sonst braucht man auch einen anderen ansatz
 

javaghost

Neues Mitglied
Wie kann ich in den Algo noch einfuegen, dass wenn ich ihn nach 10 frage, dass er dann sagt: NOT prime, 2x2x2x2x2 oder so. Waer echt nett, so praktisch als Primfaktorzerlegung. Danke
 
B

bygones

Gast
javaghost hat gesagt.:
Wie kann ich in den Algo noch einfuegen, dass wenn ich ihn nach 10 frage, dass er dann sagt: NOT prime, 2x2x2x2x2 oder so. Waer echt nett, so praktisch als Primfaktorzerlegung. Danke
schoen zu wissen, wenn man nach laengeren nicht mehr da war, die fragen und die bitten nach komplettloesung, ohne beachtung von wunderprogrammen wie google oder sonstiges, sich nicht geandert haben. (mhm gibt immer noch kein ironie tag *g)

aber gell, wenn man dir den code hinwirft weisst du auch sofort was und warum....
 

Leroy42

Top Contributor
deathbyaclown hat gesagt.:
der perfekte algorithmus waere, wenn man einfach alle primzahlen bisdahin durchlaueft und die testet...

Gesagt, getan:

Code:
	boolean isPrim(int n) {
		if (n<2)
			return false;
		for (int i : primsBisN(n-1))
			if (n%i == 0)
				return false;
		return true;
	}

	List<Integer> primsBisN(int n) {
		List<Integer> prims = new ArrayList<Integer>();
		for (int i=2; i < n; ++i)
			if (isPrim(i))
				prims.add(i);
		return prims;
	}

Braucht zum Testen ob 41 prim ist nur 29,175 Sekunden bei
lediglich 102.334.155 Aufrufen der Methode isPrim!

( :cool: )
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Methoden Primzahltest Java Basics - Anfänger-Themen 3
P Methoden Primzahltest mit Rekursion Java Basics - Anfänger-Themen 3
H Primzahltest : Erklärung zum Code Java Basics - Anfänger-Themen 2
P Primzahltest Java Basics - Anfänger-Themen 7
G vielfache, fakultät und primzahltest Java Basics - Anfänger-Themen 35
S Primzahltest Java Basics - Anfänger-Themen 3
R Best Practice Problem mit (einfacher) Doppelt-Schleife Java Basics - Anfänger-Themen 53
K Verständnis Problem bei Server/Client Java Basics - Anfänger-Themen 2
I WildFily - unterschiedliche Libs im Projekt verursachen Problem Java Basics - Anfänger-Themen 11
imocode Vererbung Problem mit Vererbung Java Basics - Anfänger-Themen 2
L Taschenrechner Problem Java Basics - Anfänger-Themen 4
I Applikationsserver (WildFly) - Zugriff auf Ressourcen.. Problem mit Pfade Java Basics - Anfänger-Themen 10
A ScheduledExecutorService problem Java Basics - Anfänger-Themen 7
marcelnedza Problem mit Weltzuweisung, JavaKarol Java Basics - Anfänger-Themen 13
XWing Methoden rückgabe Problem? Java Basics - Anfänger-Themen 6
M Erste Schritte Collatz Problem max int Java Basics - Anfänger-Themen 3
M Problem bei verschachtelter for-Schleife bei zweidimensionalen Arrays Java Basics - Anfänger-Themen 3
C GLOOP Problem beim Erstellen der Kamera Java Basics - Anfänger-Themen 9
nelsonmandela Problem bei Ausgabe einer Switch - Case Funktion Java Basics - Anfänger-Themen 5
frager2345 Problem mit Methode Java Basics - Anfänger-Themen 4
L Problem bei Rechnung mit Math.pow Java Basics - Anfänger-Themen 13
A Thread-Schreibe-Lese-Problem Java Basics - Anfänger-Themen 4
SUPERTJB return Problem Java Basics - Anfänger-Themen 3
sserio BigInteger Problem Java Basics - Anfänger-Themen 4
JordenJost Taschenrechner problem Java Basics - Anfänger-Themen 5
K Problem mit "Random" Java Basics - Anfänger-Themen 5
S Datei anlegen Problem! Groß- und Kleinschreibung wird nicht unterschieden Java Basics - Anfänger-Themen 4
sserio Problem beim Anzeigen Java Basics - Anfänger-Themen 5
xanxk Problem For-Schleife mit Charakter Java Basics - Anfänger-Themen 2
L Unbekanntes Problem mit 2d Array Java Basics - Anfänger-Themen 6
sserio Liste erstellt und ein Problem mit dem Index Java Basics - Anfänger-Themen 8
sserio Schwimmen als Spiel. Problem mit to String/ generate a card Java Basics - Anfänger-Themen 4
J Schleife Problem Java Basics - Anfänger-Themen 2
D Problem mit der Erkennung von \n Java Basics - Anfänger-Themen 2
milan123 das ist meine aufgabe ich hab das problem das bei mir Wenn ich die Richtung der Linien verändern will und drei davon sind richtig, verändere ich die 4 Java Basics - Anfänger-Themen 3
M Verständins Problem bei Aufgabe Java Basics - Anfänger-Themen 4
HeiTim Problem mit der Kommasetzung an der richtigen stelle Java Basics - Anfänger-Themen 59
Temsky34 Problem mit dem Code Java Basics - Anfänger-Themen 17
P Problem mit Calendar.getDisplayName() Java Basics - Anfänger-Themen 8
C Problem mit mehreren Methoden + Scanner Java Basics - Anfänger-Themen 5
P Datei einlesen, nach Begriff filtern und in Datei ausgeben. Problem Standardausgabe über Konsole Java Basics - Anfänger-Themen 19
M Problem mit Klassenverständnis und Button Java Basics - Anfänger-Themen 8
EchtKeineAhnungManchmal hallo habe ein Problem mit einer Datei -> (Zugriff verweigert) Java Basics - Anfänger-Themen 4
H Problem mit Verzweigungen Java Basics - Anfänger-Themen 6
H Problem mit Rückgabewert Java Basics - Anfänger-Themen 7
josfe1234 JAVA FX problem Java Basics - Anfänger-Themen 3
A Code Problem Java Basics - Anfänger-Themen 6
Henri Problem von Typen Java Basics - Anfänger-Themen 7
J Problem mit "ArrayIndexOutOfBoundsException" Java Basics - Anfänger-Themen 11
K jackson Mapping - Problem mit Zeitzonen Java Basics - Anfänger-Themen 10
B Threads Problem mit mehreren Threads Java Basics - Anfänger-Themen 38
I Output BigDecimal anstatt double / Problem beim Rechnen Java Basics - Anfänger-Themen 16
D Schleifen Problem Java Basics - Anfänger-Themen 2
H So viele Fehlermeldungen, dass ich nicht weiß wo das Problem ist. Java Basics - Anfänger-Themen 6
J JAVA-Problem blockiert MEDIATHEKVIEW Java Basics - Anfänger-Themen 13
T Problem mit Lehrzeichen und String bei einfacher Chiffre Java Basics - Anfänger-Themen 8
J extends Problem Java Basics - Anfänger-Themen 2
C Polymorphie-Problem Java Basics - Anfänger-Themen 3
Kalibru Problem bei Ausgabe von Objekt Java Basics - Anfänger-Themen 1
I Format Problem mit Wert - bekomme 0,10 anstatt 10,00 Java Basics - Anfänger-Themen 6
J Problem mit einer Methode die gewissen Inhalt einer Array löschen soll Java Basics - Anfänger-Themen 9
J Problem mit einer Methode, die beliebig viele Objekte in Array speichern soll Java Basics - Anfänger-Themen 6
J Allgemeines Problem mit Klassen Java Basics - Anfänger-Themen 5
U Problem mit dem initialisieren meines Strings in einer Schleife Java Basics - Anfänger-Themen 5
amgadalghabra algorithmisches Problem Java Basics - Anfänger-Themen 19
J Traveling Salesman Problem [Arrays] Java Basics - Anfänger-Themen 9
R ArrayList Problem Java Basics - Anfänger-Themen 6
InfinityDE Problem mit Datenübergabe an Konstruktor Java Basics - Anfänger-Themen 7
C RegEx Problem Java Basics - Anfänger-Themen 4
J Anfänger TicTacToe, Problem bei Gewinnoption, sowohl Unentschieden Java Basics - Anfänger-Themen 8
E Taschenrechner GUI Problem mit Fehlerhandling Java Basics - Anfänger-Themen 6
M Input/Output Fallunterscheidung Problem Java Basics - Anfänger-Themen 17
P Problem beim Überschreiben einer vererbten Methode Java Basics - Anfänger-Themen 4
M Problem bei Ausgabe Java Basics - Anfänger-Themen 7
Splayfer Java Array Problem... Java Basics - Anfänger-Themen 2
G Problem bei der Ausgabe einer Main Claase Java Basics - Anfänger-Themen 7
F Problem mit KeyListener in kombination mit dem ActionListener Java Basics - Anfänger-Themen 4
G Subset sum problem mit Backtracking Java Basics - Anfänger-Themen 18
N Problem mit Scanner Java Basics - Anfänger-Themen 2
J Klassen Problem Java Basics - Anfänger-Themen 8
A Out.format problem. Java Basics - Anfänger-Themen 3
J Problem bei der Programmierung eines Tannenbaums Java Basics - Anfänger-Themen 9
A Array problem Java Basics - Anfänger-Themen 16
2 Taschenrechner mit GUI Problem bei der Berechnung Java Basics - Anfänger-Themen 8
W Remote Method Invocation RMI - Problem Java Basics - Anfänger-Themen 0
I Ich habe ein Problem Java Basics - Anfänger-Themen 3
A Problem bei returnen eines Wertes Java Basics - Anfänger-Themen 6
M Regex Erstellung Problem Java Basics - Anfänger-Themen 2
D Input/Output Problem bei der Benutzereingabe eines Befehls Java Basics - Anfänger-Themen 14
M (Sehr großes Problem) Listen als static in anderen Klassen verwendet Java Basics - Anfänger-Themen 12
F Habe ein problem mit dem ActionListener Java Basics - Anfänger-Themen 3
C Regex-Problem Java Basics - Anfänger-Themen 4
J Problem beim vergleich von zwei Integer Java Basics - Anfänger-Themen 3
M Problem in der Modellierung Java Basics - Anfänger-Themen 20
W Wo ist das URL-Problem ? Java Basics - Anfänger-Themen 1
S Generics-Problem: Class, Class<?>, Class<Object> Java Basics - Anfänger-Themen 4
D FileWriter / FileReader Problem Java Basics - Anfänger-Themen 10
G Problem beim Speichern von Objekten in einer Datei Java Basics - Anfänger-Themen 7
S Compiler-Fehler Exception in thread "main" java.lang.Error: Unresolved compilation problem: Java Basics - Anfänger-Themen 6
J Problem mit Array: 2 Klassen Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben