Ich bin ein völliger Neuling im Programmieren, also bitte Nachsicht wenn was gar nicht stimmt 😉
Ich hab euch hier mal meinen Lösungsvorschlag für den Primzahlentest - allerdings arbeitet er nicht sauber. Primzahlen erkennt er, bei "nicht-Primzahlen" spukt er jeweils 2x Nein aus.
Mir ist klar, dass er zwei mal auf die Anwendung stösst und daher das doppelte Ergebnis.
Ich hab mal probiert die oberste Anweisung wegzulassen, aber dann arbeitet er gar nicht mehr..?
Hat wer von euch einen Lösungsvorschlag dafür (am liebsten mit einfacher Erklärung)? Danke!
public void istPrimzahl(long n) {
//prüfe n Modulodivision m gleich null, wenn true gebe aus "NEIN"
//wenn false erhöhe m um 1 solange m < n
//wenn m = n breche ab und gebe aus "JA"
int m = 2;
{if ((n % m == 0) && (n != 2)) {
System.out.println("NEIN");
}
while ((m < n) && (n % m != 0)) {
m++;
}
if (m == n) {
System.out.println("JA");
}
if ((m < n) && (n % m == 0)) {
System.out.println("NEIN");
}
}
}
public static void main(String[] args) {
// Diese Variable kaennen sie veraendern, um Ihre
// Implementierung zu testen
int x = 20;
// Der nachfolgende Quelltext erzeugt nur die Ausgabe
System.out.print("Ist ");
System.out.print(x);
System.out.println(" eine Primzahl?");
new PrimzahlTester().istPrimzahl(x);
}
}
Ich hab euch hier mal meinen Lösungsvorschlag für den Primzahlentest - allerdings arbeitet er nicht sauber. Primzahlen erkennt er, bei "nicht-Primzahlen" spukt er jeweils 2x Nein aus.
Mir ist klar, dass er zwei mal auf die Anwendung stösst und daher das doppelte Ergebnis.
Ich hab mal probiert die oberste Anweisung wegzulassen, aber dann arbeitet er gar nicht mehr..?
Hat wer von euch einen Lösungsvorschlag dafür (am liebsten mit einfacher Erklärung)? Danke!
public void istPrimzahl(long n) {
//prüfe n Modulodivision m gleich null, wenn true gebe aus "NEIN"
//wenn false erhöhe m um 1 solange m < n
//wenn m = n breche ab und gebe aus "JA"
int m = 2;
{if ((n % m == 0) && (n != 2)) {
System.out.println("NEIN");
}
while ((m < n) && (n % m != 0)) {
m++;
}
if (m == n) {
System.out.println("JA");
}
if ((m < n) && (n % m == 0)) {
System.out.println("NEIN");
}
}
}
public static void main(String[] args) {
// Diese Variable kaennen sie veraendern, um Ihre
// Implementierung zu testen
int x = 20;
// Der nachfolgende Quelltext erzeugt nur die Ausgabe
System.out.print("Ist ");
System.out.print(x);
System.out.println(" eine Primzahl?");
new PrimzahlTester().istPrimzahl(x);
}
}