Primzahlen

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Also ich wollte ein Programm schreiben das folgendes leistet

1.Eingabe einer natürlichen Zahl größer als 1
2.Eingabe der Zahl z von der Tastatur
3.Es soll eine Prüfung gemacht werden ob z eine Primzahl ist.
4.Ausgabe dieser ERgebnisse

Also ich hab eein Programm geschrieben das soweit richtig sein müsste.

Code:
class Primzahl
{
	public static void main(String args[])
	{
		double z;
		System.out.println("Geben sie eine Zahl z für die Primzahlein");
		do
		{
		System.out.println("Geben sie eine Zahl z ein:");
		z=IO1.eindouble();
		if(z<=1)
		
			System.out.println("z ist keine natürliche Zahl,Neueingabe!");
		}	while(z<=1);
		if(z==2)
		{
			System.out.println("Z ist eine Primzahl:"+z);
		}	
		if(z==3)
		{
			System.out.println("z ist eine Primzahl:"+z);
		}
		if(z==5)
		{
			System.out.println("z ist eine Primzahl:"+z);
		}
		if(z==7)
		{
			System.out.println("z ist eine Primzahl:"+z);
		}
		if(z==11)
		{
			System.out.println("z ist eine Primzahl:"+z);
		}
		if(z==13)
		{
			System.out.println("z ist eine Primzahl:"+z);
		}
		if(z==17)
		{
			System.out.println("z ist eine Primzahl:"+z);
		}
		if(z==19)
		{
			System.out.println("z ist eine Primzahl:"+z);
		}
		if(z==23)
		{
			System.out.println("z ist eine Primzahl:"+z);
		}
		if(z==29)
		{
			System.out.println("z ist eine Primzahl:"+z);
		}
		if(z==31)
		{
			System.out.println("z ist eine Primzahl:"+z);
		}	
			
	}	
}

nur irgendwi egefällt mir das nciht so ganz gibt es nciht eine bestimmte Formel wo mit man die PrimzHLEN PROGRAMMIERT???

wiel so wäre es ja richtig,aber ich finde es nciht so schön

danke im voraus
 

xdavidx

Aktives Mitglied
Was ist mit der 313?

Code:
public static boolean isPrime(int n) {

	if (n <= 1) return false;

	if (n == 2) return true;

	if (n % 2 == 0) return false;

	for (int i = 3; i * i <= n; i += 2)
		if (n % i == 0)
		     return false;

		return true;

	}

Schleife ist das Zauberwort ;)

Von 2 bis n (bzw Wurzel von n/diese version ist getweaked!) gehste alle Zahlen durch und teilst diese jeweils durch deine Zahl n!

Es ist eine Primzahl wenn keine der Zahlen deine Zahl n ohne Restbildung teilen kann!
 

xdavidx

Aktives Mitglied
Wieso double einlesen?

Eine Primzahl muss int/long oder BigInteger sein da es eine nat. Zahl ist!

Hm warum hast du in deinem code eine leere "while(z<=1); " Anweisung ???
 
S

SlaterB

Gast
da ist keine leere "while(z<=1); " Anweisung,
nur schlecht formatierter Code ;)
 
G

Gast

Gast
Danke

@ xdavidx
BigInteger was ist dne das???

eine PrimzHL MUSS DOCH GRÖ?ER ALS ! SEIN ODER?
 
G

Guest

Gast
sitze irgendwie auf dem Schlau

Code:
class Primzahl
{
	public static void main(String args[])
	{
		int z;/*Zahl die von der Tastatur eingelesen werden soll*/
		int n;/*Hilfsvariabel*/
		int u;
		System.out.println("Geben sie eine Zahl z für die Primzahlein");
		do
		{
		System.out.println("Geben sie eine Zahl z ein:");
		z=IO1.einint();
		if(z<=1)
		
			System.out.println("z ist keine natürliche Zahl,Neueingabe!");
		}	while(z<=1);
		for(n=2;n<=z;n++)
		{
			u=z/n;
			System.out.println("ihr u:"+u);			
		}	
			
	}	
}
 
G

Guest

Gast
Code:
class Primzahl
{
	public static void main(String args[])
	{
		int z;/*Zahl die von der Tastatur eingelesen werden soll*/
		int n;/*Hilfsvariabel*/
		int u=1;
		System.out.println("Geben sie eine Zahl z für die Primzahlein");
		do
		{
		System.out.println("Geben sie eine Zahl z ein:");
		z=IO1.einint();
		if(z<=1)
		
			System.out.println("z ist keine natürliche Zahl,Neueingabe!");
		}	while(z<=1);
		for(n=2;n<=z;n=n+1)
		{
			u=z%n;
			if(u==0)
			{
				System.out.println("ihre Primzahl u:"+u);
			}	
			else
			{
				System.out.println("Sie haben keine Primzahl:"+u);
			}		
		}		
			
			
	}	
}

abeer irgendwie stimmt das noch nciht
 

0x7F800000

Top Contributor
Was soll das schon wieder sein?

1) kein mensch will hier irgendwelche main-methoden oder buchstaben-einlese-methoden sehen, hier dürften alle in etwa wissen wie das geht. Da du schon etwa achtundsiebzig mal irgendwelche Programme mit der selben Struktur hier präsentiert hast, müsstest du es inzwischen auch wissen. erstelle eine methode
Code:
boolean isPrime(long n){...}
und schmeiss den ganzen anderen mist endlich mal weg.

2) zufälligerweise fällt bei ganzen Zahlen die eigenschaft prim zu sein mit der Eigenschaft irreduzibel zu sein zusammen. Bei den ganzen Zahlen gibt es auch nicht allzuviele Einheiten: 1 und -1.
=> du musst einfach nur testen ob die Zahl n durch irgendeine andere zahl außer 1 und n teilbar ist
-> oder noch unmissverständlicher:
wenn eine zahl n durch k teilbar ist, dann ist der Rest bei der Teilung 0
--> oder noch einfacher:
xdavidx hats doch schon gemacht, warum kannst du den verdammten code nicht einfach kopieren oder abschreiben??
 
G

Guest

Gast
Code:
class Primzahl
{
	public static void main(String args[])
	{
		int z;/*Zahl die von der Tastatur eingelesen werden soll*/
		int n;/*Hilfsvariabel*/
		int u;
		int g;
		System.out.println("Geben sie eine Zahl z für die Primzahlein");
		do
		{
		System.out.println("Geben sie eine Zahl z ein:");
		z=IO1.einint();
		if(z<=1)
		
			System.out.println("z ist keine natürliche Zahl,Neueingabe!");
		}	while(z<=1);
		for(n=2;n<=z;n=n+1)
		{
			u=z/n;
			if(z==n)
			{
				System.out.println("ihre Primzahl z lautet:"+z);
			}	
			else
			{
				System.out.println("Sie haben keine Primzahl:");
			}
					
		}		
			
			
	}	
}
irgendiw ehänge ich auf dem Schlauch bitte um hilfe
 
G

Gast

Gast
Ja das habe ich nur deinen Code verstehe ich nciht mir ist z.b. unklar was

public static boolean isPrime(int n) {

boolean prüfut auf wahr und falsch


was bedeutet den das?

i += 2

dein n ist mein k oder?
 
G

Guest

Gast
Code:
class Primzahl
{
	public static void main(String args[])
	{
		int z;/*Zahl die von der Tastatur eingelesen werden soll*/
		int n;/*Hilfsvariabel*/
		int u;
		System.out.println("Geben sie eine Zahl z für die Primzahlein");
		do
		{
		System.out.println("Geben sie eine Zahl z ein:");
		z=IO1.einint();
		if(z<=1)
		
			System.out.println("z ist keine natürliche Zahl,Neueingabe!");
		}	while(z<=1);
		boolean g;
		for(n=3;n<=z;n=n+2)
		{
			if(z%n==0)
			{
			return false;
			return true;
		}
			
					
		}		
			
			
	}	
}

bin jetzt zu müde um weiter zu programmieren

werde morgen weiter versuchen

@ David und alle anderen Danke

könnte ihr mir die Fragen beantworten kenen halt ncith soviele Mrthodne in Javabin anfänger
 
S

SlaterB

Gast
> was bedeutet den das?
> i += 2

i wird um zwei erhöht, da es sicht nicht lohnt, die Teilbarkeit durch gerade Zahlen zu testen

> dein n ist mein k oder?

ich kann in keinem Quellcode hier bisher ein k erkennen..
 

Landei

Top Contributor
Der Code von xdavidx ist wirklich leicht zu verstehen (und effizient). Nimm ihn, er ist besser als deiner.
Ja das habe ich nur deinen Code verstehe ich nciht mir ist z.b. unklar was
public static boolean isPrime(int n) {
boolean prüfut auf wahr und falsch
Wenn ich die Frage richtig verstehe (du schreibst offenbar in einer Fremdsprache, denn das ist kein Deutsch), willst du wissen, was isPrime(n) zurückgibt. Na was wohl? isPrime(n) == true, wenn n eine Primzahl ist, ansonsten isPrime(n) == false.

Also: Bau die Funktion in dein Programm ein, Lies die Zahl in der main-Methode und schreibe dann etwas in der Art:
Code:
if(isPrime(z)) {
    System.out.println("" + z + " ist eine Primzahl");
} else {
    System.out.println("" + z + " ist eine zusammengesetzte Zahl");
}

Versuche bitte, ein bißchen systematischer an die Programmierung ranzugehen. Rumstochern bringt nichts. Erst überlegen "was brauche ich", "was weiß ich", "wie ist der Ablauf", "was haben die netten Leute im Forum geschrieben". Bitte nicht einfach drauflosschreiben...

Übrigens:
Also ich hab eein Programm geschrieben das soweit richtig sein müsste.
Schau dir mal ganz in Ruhe Euklid's Beweis an, dass es unendlich viele Primzahlen gibt, dann siehst du genau, warum das nicht "soweit richtig" ist. Das meine ich ernst, denn das ist deine Chance, diesen wichtigen Beweis (und damit grundlegende Eigenschaften der Primzahlen) wirklich zu verstehen. Siehe http://de.wikipedia.org/wiki/Satz_von_Euklid
 

xysawq

Bekanntes Mitglied
Code:
class Primzahl
{
	public static void main(String args[])
	{
		int z;/*Zahl die von der Tastatur eingelesen werden soll*/
		
		System.out.println("Geben sie eine Zahl z für die Primzahlein");
		z=IO1.einint();

		if(isPrime(z))
		{
			System.out.println("ihre Primzahl z lautet:"+z);
		}   
		else
		{
			System.out.println("Sie haben keine Primzahl:");
		}
	}
	
	public static boolean isPrime(int n)
	{
		if (n <= 1) return false; //Wenn kleiner gleich 1: keine Primzahl
		if (n == 2) return true; //Wenn 2: Primzahl
		if (n % 2 == 0) return false; //Wenn durch 2 teilbar: keine Primzahl

		//1 & 2 sind behandelt, es geht bei 3 los
		for (int i = 3; i * i <= n; i += 2) //Indem i*i (das Quadrat) abgefragt wird, spart man sich die Hälfte
											//Und gerade Zahlen brauchen wir nicht, also immer um 2 erhöhen
		{
			if (n % i == 0) //Wenn deine Zahl einen Teiler neben 1 und sich selbst hat
								//ist es es keine Primzahl -> false
			{
				return false;
			}
		}
		
		return true; //Wurde nichts gefunden ist es eine Primzahl -> true
	}
}

Ich glaube einfacher kann man es dir nicht mehr machen.
 

kannkeinjava

Aktives Mitglied
SlaterB hat gesagt.:
> was bedeutet den das?
> i += 2

i wird um zwei erhöht, da es sicht nicht lohnt, die Teilbarkeit durch gerade Zahlen zu testen

> dein n ist mein k oder?

ich kann in keinem Quellcode hier bisher ein k erkennen..

sorry kenne nur bzw. kannte nur

i=i+2

meinte nicht k sondern z
 
S

SlaterB

Gast
jo, n ist dann gleich z, sind ja sowieso jeweils die einzigen Variablen ;)
 
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
T Primzahlen Java Basics - Anfänger-Themen 6
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