Hilfe bei Java Primzahlen tester?
Egal welche Zahl ich eingeben sind es alles primzahl. Kann mit jmd die richtige Bedingung sagen?
import java.util.Scanner;
class Testprogramm {
public static void main(String [] args) {
long eingabe1;
long rest;
System.out.println("Bitte geben Sie eine Zahl ein! ");
Scanner eingabe = new Scanner(System.in);
eingabe1 = Long.valueOf(eingabe.next());
rest = eingabe1 % 1;
if(rest!=0) {
System.out.println(eingabe1 + "ist keine Primzahl");
}else
{
System.out.println(eingabe1 + "ist eine Primzahl");
}
}
}
7 Antworten
Du überprüfst, ob die Zahl durch 1 teilbar ist.
Mach ne Schleife von 2 bis eingabe1/2 und überprüfe den Modulo davon.
2 ist tatsächlich eine Primzahl und davon mal abgesehen fehlt in deinem Programm eine Schleife... irgendwas in Richtung
bool isPrime = true;
for (int i = 2; i < eingabe; i++) {
if (eingabe % i === 0) {
isPrime = false;
break;
}
}
das ließe sich noch optimieren, aber generell wäre es besser, wenn du den Code verstehen würdest - dein Beispielcode ist völlig falsch, irgendeine Zahl % 1 ergibt immer 0.
Ich denke es ging ihm/ihr eher darum eine Lösung für die Hausaufgabe zu bekommen.
Wobei google ziemlich schnell helfen würde: "Java Primzahl" und man hat eine Lösung.
Gruß
Naja, der Screenshot stammt von der App "DCoder" (mit der man anscheinend programmieren lernen kann). Vielleicht will der Fragesteller selbst programmieren lernen und kommt bei der Aufgabe nicht weiter.
Aber ja, ich will da eigentlich auch nichts unterstellen.
Ok, habe ich gemacht. Tut mir leid.
Gruß
Was hat der Rest bei Division durch 1 damit zu tun, ob die Zahl eine Primzahl ist?
Du musst einen Programmteil einbauen, der auf mögliche Teiler prüft!
Ich denke, du hast die Aufgabenstellung nicht verstanden.
Naja wenn du eine natürliche Zahl durch 1 Teilst ist nie ein Rest da!
Hast du eine Idee wie die Bedingung richtig ist