Java Unterprogramm Primzahl?

2 Antworten

Also, du hast eine Zahl x, und du willst schauen ob sie eine Primzahl ist....

Eine Zahl x ist KEINE Primzahl, wenn eine Zahl zwischen 2 und x–1 existiert durch die sich x ohne Rest teilen lässt.

Anders gesagt: Eine Primzahl ist eine Zahl die sich nur durch 1 und sich selbst ohne Rest teilen lässt. Deshalb fangen wir erst mit der Zahl 2 an zu gucken, darunter ist ja nur die 1 und jede natürliche Zahl lässt sich durch 1 ohne Rest teilen.

Was heißt nun x-1, die obere Grenze? Angenommen wir nehmen die 11. Wir fangen natürlich bei 2 an:

11/2 = 5 R 1
11/3 = 3 R 2
11/4 = 2 R 3
......
11/10 = 1 R 1

Würden wir jetzt bis x, also bis 11 Zählen, hätten wir 11/11 = 1 R 0, damit wäre es keine Primzahl.

Für den Code gehen wir einfach erstmal zunächst davon aus, dass es eine Primzahl ist (z.b. mit einem Boolean) und versuchen dass dann durch einen Test wie oben mit der 11 zu bestätigen.

Hier mal der Pseudocode:

Primzahl = true
Zähle von 2 bis x-1 mit i{
Wenn Zahl % Zähler (i) = 0
Dann ist es keine Primzahl (Primzahl = false)
}

Wenn wir durch die Schleife kommen ohne das Primzahl false gesetzt wurde, ist es eine Primzahl!

Woher ich das weiß:Studium / Ausbildung

Wie sieht denn dein Entwurf dazu bisher aus?