Seit kurzem versuche ich mich an der Programmierung. Dabei bin ich auf eine Aufgabe gestoßen die einen Algorithmus fordert um erkennen zu können ob die eingegebene natürliche Zahl sich um eine Primzahl handelt.
Mein Ansatz:
1.Gebe die zu prüfende Zahl ein.
2. vergleiche die zu prüfende Zahl mit 1.
2.1 Wenn sie gleich sind gebe aus: "Die 1 ist keine Primzahl". Fahre mit Schritt eins fort.
3. Speichere die wurzel aus der zu prüfenden Zahl in tmax (/n=tmax)
4. Setze t=2
5. Vergleiche t mit tmax
5.1. Ist t größer als tmax dan gebe aus "De Zahl ist eine Primzahl". Fahre mit Schrit ein fort.
6. Ist t kleiner oder gleich tmax dann teile die zu prüfende Zahl durch t (n%t)
6.1. Wenn ein rest übrigleibt dann addiere auf t +1 (t=t+1) und Fahre mit Schritt 5 weiter fort.
7. Wenn kein Rest bleibt dan gebe aus die "Zahl ist keine Primzahl" Fahre mit Schritt eins weiter fort.
Was mir natürlich selber auffällt ist das bei größeren Zahlen viel gerechnet werden muss obwohl man mit Schritt 3 schon viel an Arbeit erspart bleibt. Dennoch bein einer zu prüfenden Zahl von z.B. 15889 müsste man nach der Methode immer noch ganze 126 Möglichkeiten überprüfen (/15889=126.05). Lösung : Man teilt die gesuchte Zahl nur durch Primzahlen bis 126 was eigentlich möglich ist aber mir irgendwie Schwer fällt es in die Schrittkette einzubinden.
Über Kommentare und weitere Denkansätze würde ich mich freuen .