Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
bin grad dabei mich in die Basics von Java einzuarbeiten und hab aus einem Übungsbuch die Aufgabe das ich prüfen soll ob eine long-Zahl eine Primzahl ist.
Hab soweit ich es für richtig hielt mal ein Programm geschrieben:
import java.io.*;
public class Prim2 {
public static void main(String[] args) throws IOException
{
String str;
long x,i=2;
boolean istprim = true;
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Primzahlrechner");
System.out.println("Ganze Zahl eingeben: ");
str = input.readLine();
x= Long.parseLong(str);
Problem bei meinem Programm ist das ich nur die Zahlen von 1-4 prüfen kann, ab einer 5 kommt keine Ausgabe mehr, das Programm läuft jedoch noch weiter.
1. Der Thread ist zwei Jahre alt
2. Steht gross rot und deutlich "JAVA Tag verwenden"
3. Wenn ich Code als solchen erkenne (eben java tags) schaue ich den auch an, aber ich kann keinen erkennen
4. Falls sich jemand auf den Schlips getreten fühl, dann lösch diesen Wink mit dem Zaunpfahl halt wieder.
Ich weiß, dass 8 keine Primzahl ist. Mir geht es nicht um das mathematische, sondern um die syntax von java. Und ich springe von 2*2 auf 3*3 weil da doch i++ steht. Wird dann nicht bei i*i aus 2*2 -> 3*3?
Ich weiß, dass 8 keine Primzahl ist. Mir geht es nicht um das mathematische, sondern um die syntax von java. Und ich springe von 2*2 auf 3*3 weil da doch i++ steht. Wird dann nicht bei i*i aus 2*2 -> 3*3?
//Pseudocode: Beispielzahl 5
int i = 2;
packe folgenden Code in eine Schleife die die Prüfungen automatisch vornimmt:
if(rest von 5 durch 2 gleich 0) {
zurückgeben: keine prim
}
if(rest von 5 durch 3 gleich 0) {
zurückgeben: keine prim
}
if(rest von 5 durch 4 gleich 0) {
zurückgeben: keine prim
}
//Hier endet die Schleife
zurückgeben: prim
[TIPP]Java Methoden beenden sich beim ersten return.[/TIPP]
public isPrime(int check) {
//Wenn du mit 1 anfängst is jede Zahl keine Primzahl
for(int i = 2; i < check; i++) {
if(check % i == 0) {
return false; //Also keine Primzahl
}
}
return true; //Wenn dieser Punkt erreicht wird isses ne Primzahl
}
Evtl. solltest du dir mal genau anschauen, was ne Primzahl ist, bzw. wie man sie berechnet...
was eine Primzahl ist, weiß ich. Es ging mir nur darum wie diese Sequenz es berechnet. Ich hatte vergessen wie der Operator "%" funktioniert. Aber ich danke dir für die Erklärung. Ich habs jetzt verstanden