Silizium185 Geschrieben 19. Juli 2010 Geschrieben 19. Juli 2010 Moin Leute, mache grade meine ersten Schritte mit Java und habe folgende Aufgabe von der Schule bekommen. Zeichnen Sie ein Flussdiagramm, dass zu einer Eingabe n alle Primzahlen von 1 bis n aufaddiert. Dabei ist der Test auf Primzahl keine einfache Bedingung, sondern muss ebenfalls durch Elemente des Flussdiagramms gelöst werden. Ich krieg die Prüfung auf Primzahlen nicht wirklich hin. Kann mir einer von euch helfen. Im Anhang könnt ihr sehen, wie weit ich schon gekommen bin ;-) Schonmal dankeflussdiagarmm.pdf Zitieren
flashpixx Geschrieben 19. Juli 2010 Geschrieben 19. Juli 2010 Zeichnen Sie ein Flussdiagramm, dass zu einer Eingabe n alle Primzahlen von 1 bis n aufaddiert. Dabei ist der Test auf Primzahl keine einfache Bedingung, sondern muss ebenfalls durch Elemente des Flussdiagramms gelöst werden. Ich formuliere es einmal anders: Eingabe von n, berechne alle Primzahlen 1 bis n und summiere diese auf Zitieren
MartinSt Geschrieben 19. Juli 2010 Geschrieben 19. Juli 2010 Bitte überlege dir weiterhin, wie man eine Zahl darauf überprüft, ob sie prim ist. Aus der Schulmathematik sollten dir zumindest elementare Verfahren dazu bekannt sein. Ggf. kannst du auch andere Verfahren "erkunden", die allerdings dann mehr Algebra voraussetzen als im Schulstoff üblich. Zitieren
Mcolli Geschrieben 20. Juli 2010 Geschrieben 20. Juli 2010 (bearbeitet) Also zwei sicher Möglichekiten kenn ich: 1. Divisions Test: Angenommen Du Willst wissen ob "x" eine Primzahl ist. dann Prüfst Du einfach ob es ein "y" gibt mit 1 < y < x für das gilt x mod y = 0; Das ganze lässt sich durch asuprobieren in einer Schleife realisieren und durch bestimmte Überlegungen verfeinern .... Stichwort Primfaktor zerlegung. 2. Sieb des Eratosthenes : Dies ist ein wesentlich effizienteres verfahren, welches Für Deinen Fall genau das richtige ist. Wenn Du den Wiki artikel anschaust findest Du auch nen fertigen Algo dazu ... k.a. ob Du direkt den Algo wissen willst ... aber musst ja nicht so weit runter Scrolen. Wenn Du Dich wieder besseren Wissen für 1. entscheidest überleg Dir wie Die schleife aussehen soll um die Primzahlen bis n zu finden (ich mein nicht den Test): int summe = 0; int N = 10000; // obergrenze for (x = 2; x < n; x++) { if (istPrim(x)) then { summe += x; } } Du könntest Dir gedanken machen, welche x man ohne istPrim(x) aufzurufen übergehne kann. Mit High Level Programmier skillst und einem entsprechenden mehr Kernigen Rechner kannst Du bei diesem Verfahren auch einfach auf mehrere Threads bauen und den rechen aufwand bei geschickter Aufteilung so um den Faktor "Anzahl der Kerne" verringern. Bearbeitet 20. Juli 2010 von Mcolli Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.