Saad (16.03.2014)
-
16.03.2014, 22:35 #1
Primzahlberechnung mit Unter- und Obergrenze.
Heey ich bräuchte mal schnell Hilfe von nem' Experten haha..
Es geht, wie mein Topic schon verrät, um die Primzahlenberechnung mit einer Unter und Obergrenze.
Der Benutzer gibt eine Untergrenze und eine Obergrenze ein und es sollen alle Primzahlen zwischen den Grenzen angezeigt werden ..
Vom Code her ist es nicht schwer, nur ich habe keine Ahnung wie die Berechnung funktionieren soll :-/
Habe auch schon gegooglet, aber nichts sinnvolles gefunden :-(
Lg, Saad.Bis auf Sonderschüler kannst du alle Leute fragen - Saad ist PERFEKT wie 'ne Zeitform der deutschen Sprache.
-
16.03.2014, 22:51 #2
- Registriert seit
- 15.11.2011
- Beiträge
- 6.209
- Blog Entries
- 5
Thanked 9.130 Times in 3.005 PostsAW: Primzahlberechnung mit Unter- und Obergrenze.
Wenn deine Zahl 1 oder gerade ist (Achtung Ausnahme: 2 ist trotzdem eine!) => Keine Primzahl.
Dann eine Schleife von 2 bis <= sqrt(z) deren Zähler i bei jedem Durchlauf um eins erhöht wird. Dann prüfen ob die Zahl durch den Index ohne Rest teilbar ist.
-
The Following User Says Thank You to DMW007 For This Useful Post:
-
16.03.2014, 22:57 #3
AW: Primzahlberechnung mit Unter- und Obergrenze.
hm .. check ich noch nicht wirklich..
Kannst du das vlt. an einem einfachen beispiel näher erklären?
Sagen wir mal, dass der Benutzer als Untergrenze 4 und als Obergrenze 10 eingibt.
Nun sollte die Konsole 5 und 7 ausspucken ..
E: Habs geloest.Geändert von Saad (16.03.2014 um 23:15 Uhr)
Bis auf Sonderschüler kannst du alle Leute fragen - Saad ist PERFEKT wie 'ne Zeitform der deutschen Sprache.
-
16.03.2014, 23:23 #4
- Registriert seit
- 15.11.2011
- Beiträge
- 6.209
- Blog Entries
- 5
Thanked 9.130 Times in 3.005 PostsAW: Primzahlberechnung mit Unter- und Obergrenze.
Dann machst du eine Schleife von 5 bis einschließlich 10 und rufst bei jedem Durchlauf eine Prüfmethode auf, die den Algorithmus den ich oben beschrieben habe aufruft, also:
Erst mal die die Ausnahme 1 behandeln, sie ist nämlich keine Primzahl, wäre aber laut dem Algorithmus eine und muss daher als Ausnahme behandelt werden um ihn nicht zu stören. Der Algorithmus selbst prüft schlicht und einfach, ob es einen dritten Teiler gibt, durch den die jeweilige Zahl nicht ohne Rest teilbar ist. Wäre das der Fall, handelt es sich laut Definition um keine Primzahl. Theoretisch könnte man diese Prüfung bis ins unendliche ziehen, was hier aber natürlich alles andere als sinnvoll ist. Daher berechnet man eine Grenze, bis zu der geprüft werden muss. Die berechnest du, in dem du die Quadratwurzel der jeweiligen Zahl ziehst. Bei 5 also zb 2,2 irgendwas (aufrunden!).
Die Prüfschleife macht also nun folgendes:
5 / 2 = Rest, also okay
5 / 3 = Auch Rest, ebenfalls okay
Grenze erreicht und keine weiteren Teiler gefunden => 5 ist eine Primzahl.
Bei 6 sähe das ganze wie folgt aus:
Grenze = sqrt(6) = 1,7 ~ 2
6 / 2 = Teilbar ohne Rest => Keine Primzahl, da die Zahl mehr als zwei Teiler hat.
-
The Following User Says Thank You to DMW007 For This Useful Post:
Saad (16.03.2014)
-
16.03.2014, 23:36 #5
AW: Primzahlberechnung mit Unter- und Obergrenze.
Neben der sehr bekannten Methode, die DMW007 bereits genannt hat, gibt es auch noch Siebverfahren wie das des Eratosthenes, oder dessen Verbesserung durch Aktin. Diese Verfahren setzen auf die Erkenntnis, dass 2 eine Primzahl ist und streichen alle Vielfachen davon. Die nächste Zahl, die nicht durchgestrichen wurde, ist ebenfalls eine Primzahl und ihre Vielfachen werden wieder gestrichen.
Ähnliche Themen
-
.dmg unter Windows installieren?
Von Mr.Bombastic im Forum WindowsAntworten: 1Letzter Beitrag: 01.01.2013, 16:48 -
CS1.6 Leute unter uns?
Von Shane im Forum Counter StrikeAntworten: 16Letzter Beitrag: 10.12.2012, 21:57 -
[Kritik] UH geht unter!
Von Snees im Forum FeedbackAntworten: 39Letzter Beitrag: 05.11.2012, 13:55 -
Cod 4 Spieler unter uns?
Von Killerspider im Forum Call of DutyAntworten: 1Letzter Beitrag: 04.12.2011, 04:14
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.