Primzahltester - Fehler gesucht!
-
Hallo!
Das Programm soll jede eingegebene ganze Zahl darauf testen, ob sie eine Primzahl ist, oder nicht.
Dazu musste man bestimmte Schritte einhalten. Und zwar hier: Aufgabe 6
Also hab' ich das Programm geschrieben und es funktioniert auch:
import java.util.*; public class Primzahltest{ public static void main(String[] args) { Locale.setDefault(Locale.US); Scanner sc = new Scanner(System.in); long zahl; System.out.print("Bitte eine ganze Zahl eingeben "); zahl = sc.nextLong(); long teiler=1; long divisor=2; long maxdivisor = Math.round(Math.sqrt(zahl)); do { if(zahl%divisor == 0) { teiler = divisor; } divisor++; } while((divisor<= maxdivisor+2) && (teiler==1)); if(teiler>1) { System.out.println(zahl + " ist KEINE Primzahl"); } else { System.out.println(zahl + " ist EINE Primzahl"); } } }
Das Problem ist nun das folgende: Die Zahl 3 wird als keine Primzahl ausgegeben. Für jede weitere Zahl, die ich bischer eingegeben habe, gibt das Programme allerdings das richtige Ergebnis raus.
Worin liegt denn der Fehler?
-
Hallo,
while((divisor<= maxdivisor+2) ist true, wenn divisor = 3 ist.
Jockel
-
Dann liegt es wohl an der vorgegebenen Formel, nehme ich mal an?